0

サブジェクトと教師の
サブジェクトモデルとして2つのモデルがあります

class Subject < ActiveRecord::Base
   belongs_to :sclass
    has_many :subject_teachers
   attr_accessible :sub_name
end

教師モデルとして

class Teacher < ActiveRecord::Base
  # attr_accessible :title, :body
  has_many :sclass_teachers
   has_many :subject_teachers
  attr_accessible :fname, :lname, :mob, :email
end

結合テーブルを subject_teacher として多対多の関係として作成しました

class SubjectTeacher < ActiveRecord::Base  
  belongs_to :subject
  belongs_to :teacher  
end

しかし、サブジェクトモデル/テーブルの教師名にアクセスしたいのですが、どうすればよいですか。多対多の関係があるため、特定の教師の名前を特定の科目に取得するために、完璧なコードをどこで何を書きましたか?

4

3 に答える 3

1

あなたがするだろう:

has_many :teachers through => :subject_teachers

@ヒューゴが言ったように

于 2012-08-08T09:40:12.177 に答える
0

has_many :through 関係を使用して、サブジェクトから教師のデータにアクセスできます。

http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association

于 2012-08-08T09:12:42.620 に答える
0

あなたの言うことは少し奇妙です: あなたは多対多の関係を設定し、教科には特定の教師を必要とします。したがって、多対多の関係では、教師のリストを取得できます。そして、そのリストから最初のリストを取得できます。しかし、教科に対して最大 1 人の教師がいることがわかっている場合は、has_many だけの方がはるかに便利です。

@subject.subject_teachers.teachers を使用して教師にアクセスできます。ここで、@subject は Subject インスタンスです。

has-many-and-belongs-to-many 関係を使用する場合は、中間クラスを省略できます。リレーションシップに日付や時刻などの追加データがあることだけが必要です。

于 2012-08-08T09:16:16.177 に答える