Ruby on rails RubyonRails模型

Ruby on rails RubyonRails模型,ruby-on-rails,model,associations,relationship,Ruby On Rails,Model,Associations,Relationship,我有两个模型作为主题和教师 主题模式为 class Subject < ActiveRecord::Base belongs_to :sclass has_many :subject_teachers attr_accessible :sub_name end 类主题

我有两个模型作为主题和教师
主题模式为

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
班主任
并创建了他们的联接表作为主课教师的多对多关系

class SubjectTeacher < ActiveRecord::Base  
  belongs_to :subject
  belongs_to :teacher  
end
class SubjectTeacher
但我想在科目模型/表格中访问教师姓名,我该怎么做。 我在什么地方写的完美代码,使我得到了具体的老师的名字,以具体
有多对多关系吗

您可以使用has\u-many:through关系从主题访问教师数据

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

你说的有点奇怪:你建立了一种多对多的关系,并且要求一个学科有一个特定的老师。所以对于多对多关系,你可以得到一份教师名单。从这个列表中你可以选择第一个。但是如果你知道一个科目最多只有一个老师,那么一个老师就方便多了


您可以使用@subject.subject\u teachers.teachers访问教师,其中@subject是主题实例

如果使用has-many并属于many关系,则可以省略中间类。您只需要关系中有其他数据,如日期和时间。

您可以执行以下操作:

has_many :teachers through => :subject_teachers

正如@Hugo所说的

你的意思是你需要老师的名字,以及她在某一特定课程上所学的科目吗?是的,我需要这个,但不是在特定的课程上,因为我说一个老师可以教多个科目,一个科目可以由多个老师教。我添加了这行,而不是“has_many:subject_teachers”在我的科目模型中,我如何访问教师姓名?请给我一些提示