有没有办法在belongs_to 关系中使用through
选项? Rails documentation on belongs_to 没有提到 through
作为选项,为什么不呢?我想做如下事情:
class Lesson < ActiveRecord::Base
attr_accessible :name, :lesson_group_id
belongs_to :lesson_group
belongs_to :level, through: :lesson_group
end
class LessonGroup < ActiveRecord::Base
attr_accessible :name, :level_id
belongs_to :level
has_many :lessons
end
class Level < ActiveRecord::Base
attr_accessible :number
has_many :lesson_groups
end
然后我可以做类似
Lesson.first.level
的事情。使用最新的稳定 Rails(截至目前为 3.2.9)。 最佳答案
在 the link 你给了:
我认为您应该使用 has_one :level, through: :lesson_group
,如下所示:
class Lesson < ActiveRecord::Base
attr_accessible :name, :lesson_group_id
belongs_to :lesson_group
has_one :level, through: :lesson_group
end
class LessonGroup < ActiveRecord::Base
attr_accessible :name, :level_id
belongs_to :level
has_many :lessons
end
class Level < ActiveRecord::Base
attr_accessible :number
has_many :lesson_groups
end
关于 has_one
选项的文档的一部分:他们在这里谈到了 :
Rails has_one :through association
关于ruby-on-rails - 在belongs_to ActiveRecord 关联上使用through 选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13749558/