如何获得Grandson ActiveRecord对象

时间:2016-06-07 04:38:34

标签: ruby-on-rails ruby

class Chapter < ApplicationRecord
  has_many :courses
end

class Course < ApplicationRecord
  belongs_to: chapter
  has_many :modules
end

class Moudule < ApplicationRecord
  belongs_to: course
end

我想获得章节模块

我写了一段代码。

module_list = []
chapter = Chapter.find(1)
chapter.courses.each |course| do
  course.modules.each |module| do
    module_list.push(module)
  end
end

module_list

但它并不聪明。

  • 很多每个巢。
  • module_list不是ActiveRecordObject。

有好方法吗?

1 个答案:

答案 0 :(得分:4)

这是“通过”协会的用途:

class Chapter < ApplicationRecord
  has_many :courses
  has_many :modules, :through => :courses
end

chapter = Chapter.find(1)
chapter.modules