我正在使用Ruby on Rails(特别是ActiveRecord),我正在尝试决定使用多个级别链接我的模型是个好主意。
class Student < ActiveRecord::Base
has_many :student_sections
has_many :sections, :through => :student_sections
has_many :courses, :through => :sections
end
看起来这样可行,但我在ActiveRecord上没有很多经验。有没有理由不这样做?
答案 0 :(得分:2)
这很好,但你应该记住,课程协会实际上只是一个'获得'协会(而不是'获取和设置')。我的意思是你可以说
@ student.courses
(在做了neo的修复之后)获取课程列表,但是你做不到
@ student.courses&lt;&lt; @course
因为rails没有在学生和课程之间进行必要连接所需的部分信息。
答案 1 :(得分:0)
您需要添加:source属性
has_many :sections, :through => :student_sections, :source => 'your_source'