rails docs に示されているように、単純な条件に基づいてモデル属性を検証しようとしています。ブール値の「show_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? の中の部分を変えても動きません。メソッドを「true」にします。これが機能しない理由についてのアイデアはありますか?