Course
には多くのLessons
があり、うまく動作しているJSドラッグアンドドロップウィジェットでユーザによって選択されます。Railsに組み込まれている関連付けに依存するバリデーション
ここでのparamsの関連部分は、私は2回の授業を選択したときです:の合計は、いくつあるかを含め、
Parameters: {
"course_lessons_attributes"=>[
{"lesson_id"=>"43", "episode"=>"1"},
{"lesson_id"=>"44", "episode"=>"2"}
]
}
を私は@course
上でいくつかの検証を実行したいと、それはレッスンの新しいセットですレッスンの価格などが含まれます。ここではサンプルです:
コースモデルは
validate :contains_lessons
def contains_lessons
errors[:course] << 'must have at least one lesson' unless lessons.any?
end
私の問題は、コースが保存される前に、コースとレッスンの間に関連はまだ構築されていないということである、と私は彼らに電話をかけたいときです私の検証のために(course.lessons
を使用して)。
アソシエーションに依存するカスタム検証を実行する正しい方法は何ですか?
ありがとうございました。
あなたはその特定の検証については正しいですが、残念ながら、私にレッスンのコレクションを反復する必要があるものがあります。ご回答有難うございます。 – doctororange
また、これを実装しているうちに、ただのレッスンではなく、コースレスの存在を実際に検証する必要があることを学びました。 – doctororange
もちろん、関連があればcourse_lessons:course_lessons :)私はちょうどこのチェックのためにレッスンを言った。「レッスンをしないと?」 - 実際の関連名 – alony