ruby-on-rails - Rails : validate presence of foo unless bar == 'baz'

标签 ruby-on-rails validation ruby-on-rails-3 activerecord

我正在创建一个具有两个关联的模型,创建一个对象时需要设置两个关联,在某些情况下除外。

基本上,它需要像这样工作。

class Example < ActiveRecord::Base
  has_one :foo
  has_one :bar

  validates_presence_of :foo
  validates_presence_of :bar, :unless => :foo == Foo.find_by_name('ThisFooDoesntLikeBars')
end

我不确定如何在此构建:unless条件,因为它需要检查:foo是否为特定对象。

你如何做这样的事情?

最佳答案

:unless接受Proc

  validates_presence_of :bar, :unless => Proc.new { |ex| ex.foo == Foo.find_by_name('ThisFooDoesntLikeBars') }

:unless - Specifies a method, proc or string to call to determine if the validation should not occur (e.g. :unless => :skip_validation, or :unless => Proc.new { |user| user.signup_step <= 2 }). The method, proc or string should return or evaluate to a true or false value.



http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html

关于ruby-on-rails - Rails : validate presence of foo unless bar == 'baz' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5059233/

相关文章:

java - javax validator 和 hibernate validator 如何相关(如果有)?有什么区别?

ruby-on-rails - 是否可以获得 rails 中可用布局的列表(包括来自引擎的布局)?

ruby-on-rails - Gemfile.lock运行时不断变化 'rake spec'

jquery - Rails 4. jQuery、Acts_as_list、嵌套模型、更新 Controller 中的位置

html - 如何以编程方式显示 HTML5 客户端验证错误气泡?

ruby-on-rails-3 - 加载提要/条目获取未定义的方法 'entries' for 0 :fixnum error

ruby-on-rails - Rails 中如何抑制回溯?

ruby-on-rails - validates_confirmation_of :password doesn't get triggered

ruby-on-rails - rails : Understanding uniqueness scope?

jQuery 验证错误放置