class Movie < ActiveRecord::Base
validates_presence_of :name, :rating, :length_minutes
validates_uniqueness_of :name
validates_length_of :name, :maximum => 256
validates_numericality_of :length_minutes, :only_integer => true
has_many :movie_showtimes
VALID_RATINGS = ['Unrated', 'G', 'PG', 'PG-13', 'R', 'NC-17']
def validate_length_minutes
if length_minutes && length_minutes <= 0
errors.add 'length_minutes',
'must be greater than zero'
end
end
def validate_rating_type
if !VALID_RATINGS.include?(rating)
errors.add 'rating',
"must be #{VALID_RATINGS[0..-2].join(', ')} or #{VALID_RATINGS[-1]}"
end
end
def validate
validate_length_minutes
validate_rating_type
end
end
The save method, it happens, is a wrapper around calling the method
save_with_validation with the parameter true. To make the tests run as we expect, we need to replace the save calls with calls to save_with_validation with the parameter false
分享到:
相关推荐
简易匹配器为常规Rails功能提供RSpec匹配器。 为什么 我们希望在Rails应用程序中编写所有功能的规范。 是的,带有验证,关联和所有其他功能。 我们希望检查是否存在验证和关联,但不测试实现。 这是与守望者比赛者...
Trailblazer 是基于 Rails 的一个瘦的封装层,加强了代码的封装使用,更直观的代码结构和面向对象架构。是一种概念驱动的架构模型,项目目录如下: app├── concepts│ ├── comment│ │ ├── cell.rb│ ...
validates_typeRails类型验证目的大多数Rails应用程序将具有由其ORM连接适配器强制的类型(例如pg gem或mysql2 )。 但是,这仅对具有定义良好的架构的应用程序有用。 如果您的应用程序具有无法再修改的旧式存储层或...
盾 Shield 是一个用于 Rails 应用程序的策略清理 API。 其目的是通过一个干净且定义明确的 API 在 Rails 应用程序中... def validate user . email_confirmed? && user . last_login_at > 14 . days . ago end priva
机架:: BearerAuth ... Rails :: Application # ... config . middleware . use Rack :: BearerAuth :: Middleware do match path : "/foo" do | token | # validate token # AccessToken.where
安装将此添加到您的Gemfile : gem "validate_url" 或自己安装: sudo gem install validate_url用法使用ActiveRecord class Pony < ActiveRecord :: Base # standard validation validates :homepage , url : ...
认证API Ruby版本2.3.1 系统依赖rspec-rails factory_girl_rails shoulda_matchers 骗子database_cleaner jwt 加密配置关于短信的配置sms: company: 云片网 expires_in: 3600 # second数据库创建sqlite3 如何运行...
//= require jquery.validate 由于验证规则是动态创建的,因此需要将其包含在布局文件的标题中:- <%= javascript_include_tag "green_light" %> 将green_light类添加到希望进行客户端验证的表单中:- &...
它返回一个错误列表,它是类似于 Rails的错误键值对的表示。 Error 列表可以独立于Validate 。 ErrorList本身有一些方法可以简化在键上搜索错误和添加/附加错误。 ###证实####用法var validator = el....
Admin.new({email: "addresss@domain.tld", password: "password", password_confirmation: "password"}).save(validate: false) 版本 版本。转到此处 还在下面链接(安装(Mac OS) 安装(Mac OS) 该站点通过...
Rspec :: RespectSelectorLimit 确保您CSS文件在旧版IE中不会损坏安装将此行添加到您的应用程序的Gemfile中: gem 'rspec-respect_selector_limit'用法 require 'rails_helper'it 'validates application.css' do ...
该库的动机来自于这样一个事实,即Rails对联接表中的每个插入记录进行验证。 而且,即使您通过了validate:false,它仍然会加载每个记录并一个接一个地插入。 这一切都很好,但是也意味着插入大量(数千)记录很慢...
Shoulda可帮助您在Minitest和Test :: Unit下编写更易于理解,可维护的特定于Rails的测试。 快速链接 :loudspeaker: 概述 作为伞形宝石, shoulda宝石不包含任何自己的代码,而是带来了另外两个宝石的行为: 例如...
通过jQuery.payment和jQuery.h5validate插件进行前端验证 依存关系 狂欢(v.2.2.2) 引导bootstrap-sass ( bootstrap-sass ) Fontawesome( font-awesome-rails ) 包括 jquery-ui jquery.payment jquery.h5验证...
营业时间 一个非常简单的解析器来解析文本,例如 Mon-Fri: 9AM-5PM Sat: 10AM-7PM ... validate :normal_business_hours_must_be_in_valid_format def normal_business_hours_must_be_in_valid_for