我正在尝试根据rails docs中显示的简单条件验证模型属性。我有一个带有布尔“show_birthday”属性的测验模型,以及一个带有birthday属性的参与者模型。这是我的代码的相关部分:
class Participant < ActiveRecord::Base
belongs_to :quiz
validates :birthday, presence: true, :if => :has_birthday?
def has_birthday?
quiz.show_birthday?
end
end
如果我删除if条件,验证是有效的,但即使我更改has_birthday内的部分也不起作用?方法为“真”。关于为什么这不起作用的任何想法?