私はモデルStudentProductRelationship
を持っています。私はカスタムバリデータを追加していRailsで検証メソッドが呼び出されるのはいつですか?
validate :validate_primary_product , :if => "!primary_product"
方法は
def validate_primary_tag
unless StudentProductRelationship.exists?(:primary_product => true, :student_id => student_id)
errors.add(:base,"There is no primary product associated to product")
else
end
end
primary_product
がブールフィールドです。少なくともprimary_product
の存在がstudent_id
であることを検証したいと思います。問題は、StudentProductRelationship
オブジェクトがspr
とprimary_product = true
といっているとします。私がすればspr.update_attributes(primary_product: false)
。 StudentProductRelationship.exists?(:primary_product => true, :student_id => student_id)
が存在するため、この検証ではエラーが発生しませんspr
はまだdbにprimary_product = true
で存在します。どのように私はこれを上回るのですか?
いいえ存在しない私はそれが真実である必要があります。これは正しく 'false'を扱うでしょうか? – Codernx123