0

「多くの」モデルオブジェクトの1つを作成するときに、1対多の関係で外部キーを正常に割り当てることができません。

より具体的には...私には2つのモデルがCourseありSectionコース has_many :sectionsと各セクション belongs_to :courseがあります。各セクションには、他の属性の中でも、外部キーがありますcourse_id

と呼ばれるヘルパーメソッドを作成したいcurrent_courseので、関数を作成するときに、作成時に外部キーを自動的に割り当てるcreate関数を作成できます。つまり、クリック元のクラスのID(つまり)を取得し、新しく作成されたセクションと等しくします。私は..の線に沿って試しましたが、作成時にIDエラーをスローし続けます。私は何を間違っていますか、そしてどのように私の方法を修正しますか?ありがとう!current_course.sections.build(params[:section])course_idcurrent_course/class/1/course_id@current_course ||= Course.find(params[:course_id])current_course

4

1 に答える 1

0

あなたがしていることは基本的に正しいようです。

コントローラーcreateは通常、最初にこのような行を持っています。(結局、作成されていないものは見つかりません。)

@course = Course.new(params[:course])

正確に 1 つの をビルドすることがわかっている場合は、コントローラーで実行することをおSection勧めします。そこから、モデルを確認してから、ビューのフィールドに関数を入力できます。このようにすると、コントローラーは簡単に言うことができ、一緒に保存されます。@course.sections.buildnewCoursesaccepts_nested_attributes_for :sectionsSectionfields_for@course.saveSection

お役に立てば幸いですが、そうでない場合は、表示されているエラーをコメントに追加してください。

于 2013-01-11T05:21:19.417 に答える