我的models / user.rb中有以下内容:
validates :company, presence: true
validates :title, presence: true
我有一个辅助视图,我想创建一个用户但不要求该用户输入公司和标题。如果不修改主user.rb,我该怎么做?
这适用于Rails 3.2
答案 0 :(得分:1)
您可以通过@BroiSatse已经回答的方式声明自定义验证,或者在保存用户时可以将validate: false
作为参数传递,这样做
@user.save(:validate => false)
答案 1 :(得分:0)
我通常会这样做:
class User < AR::Base
validates :company, :title, presence: true, if: :validate_company_and_title?
def validate_company_and_title?
@validate_company_and_title.nil? || @validate_company_and_title
end
def skip_company_and_title_validation!
@validate_company_and_title = false
end
end
然后在您的控制器中为给定视图创建操作:
@user.skip_company_and_title_validation!