有没有办法在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/

10-14 15:49