我想知道,为什么在使用 :through 时,我总是必须在两个有问题的模型中指定 has_many :assignments 关联?这是干的吗?是否存在不需要指定它们的情况,或者它们不同的情况?谢谢你的解释。
class Programmer < ActiveRecord::Base
has_many :projects, :through => :assignments
has_many :assignments # Why that?
end
class Project < ActiveRecord::Base
has_many :programmers, :through => :assignments
has_many :assignments # Why that?
end
class Assignment < ActiveRecord::Base
belongs_to :project
belongs_to :programmer
end
更新
似乎我说的还不够清楚has_many :through!所以对这一点给出的答案并不真正适合我的问题。再说一遍:
为什么has_many :assignments
我已经有 a 时总是需要 a has_many :projects, :through => :assignments
?Rails 不应该has_many :assignments
自动添加自己吗?