gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:53:39 25 4
gpt4 key购买 nike

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

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com