0

私は次のモデルを持っています:

Student has_many :subjects, :through => :classes

Subject has_many :students, :through => :classes

Class belongs_to :subject
      belongs_to :student

モデル クラスには、level と呼ばれる追加の属性 (subject および students テーブルへの外部キーの中に) があります。

基本的には、学生が科目を選択し、その科目をその記録に関連付けることができるフォームを作成できるようにしたいと考えています。だから、私はこれを持っています:

ClassesController < ApplicationController

def new
 @list_of_subjects = Subject.all
 # What should I do here?
end

私の質問は、フォームのオブジェクトをどのように作成すればよいですか? 科目、生徒、またはクラスのどのモデルからのものにする必要がありますか? 学生と学生が選択した科目を関連付けるクラス テーブルにレコードを作成できるようにしたいのですが、それが間違っているかどうかはわかりません。

ありがとう

4

1 に答える 1

0

Classキーワードだからというモデルを作れるとは思っていなかったのですが、そんなことないですよね…。

Studentまず、これらのものを選択しているのは学生なので、コントローラーとビューを使用する必要があると思います。次に、からコネクタ モデルのインスタンスを作成できるモデルを追加accepts_nested_attributes_for :classする必要があると思います。StudentClassStudent

あなたがやろうとしていることは、私がやろうとしたことに少し似ています。そこに完全なコードがあります。

ネストされた属性を使用してフォーム内の関連付けを簡単に選択する

私は後でこの質問でもそれを少し改良して、コードの恐ろしさを軽減しました:

Rails:ビルドとの関連付けを前に追加または挿入するにはどうすればよいですか?

遅いことはわかっていますが、お役に立てば幸いです。

于 2012-12-10T16:50:49.380 に答える