1
にこのコードは、私のために働いていないが、デバッガは、トリガーを行い、その値が、私は私のテストケースのために期待されている:相互に排他的で、フィールドの存在を強制レール
validates :a, :presence => false, :if => Proc.new { |f| debugger; f.b.present? }
validates :b, :presence => false, :if => Proc.new { |f| debugger; f.a.present? }
目標:a
とb
同時に定義されるべきではありません。
文法を理解すると、b
が存在する場合、a
の存在はfalse
になるはずです。 b
の場合も同様です。
私はこれを誤解していますか?私はデータがsave!
を介して記録されていると信じています。しかし、私はすでにバリデーションが呼ばれていることを確認しました。私はobj.save!
の直後のオブジェクトを見て、obj.errors
は空のmessages
ハッシュを持っています。