假设我将验证代码输入到我的多语言发布数据库模型中。数据库需要特定期刊的英文或日文标题。所以我需要至少有两个中的一个来验证_presence_of。现在我可以很容易地检查两者是否存在,但我对“至少一个”的情况感到困惑:
class Article < ActiveRecord::Base
belongs_to :publication
validate_presence_of :journal_title
validate_presence_of :journal_title_ja
end
我认为这可能需要一个如下声明:
:if => :jornal_title_ja is nil
答案 0 :(得分:5)
class Article < ActiveRecord::Base
belongs_to :publication
validate_presence_of :journal_title, :if => :check_japanese
validate_presence_of :journal_title_ja, :if => :check_english
def check_japanese
journal_title_ja.nil?
end
def check_english
journal_title.nil?
end
end
这应该有效。希望我能直接得到这个问题。
观看episode no. 41 on railscasts以便更好地理解
答案 1 :(得分:0)
我之前没有编写过一行Ruby,但是我今天碰巧在我的Rails书中偶然发现了这一点 - 抱歉,如果没有任何帮助,那就完全错了!语法几乎肯定会是:
class Article < ActiveRecord::Base
belongs_to :publication
if journal_title.nil? && journal_title_ja.nil?
flunk("must have a japanese or english title")
end
end
Stack上的第一篇文章! :d