在用户模型中覆盖存在true

时间:2014-05-20 19:10:56

标签: ruby-on-rails user-presence

我的models / user.rb中有以下内容:

validates :company, presence: true
validates :title, presence: true

我有一个辅助视图,我想创建一个用户但不要求该用户输入公司和标题。如果不修改主user.rb,我该怎么做?

这适用于Rails 3.2

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!