映射儿童模型的关联

时间:2012-10-20 02:29:28

标签: ruby

我有一个与章节有很多关系的故事 章节与页面有很多关系

我想使用方法Stories.pages

返回我的Stories对象上的页面列表
def pages
  self.chapters.map do |c| c.pages end
end

这不会返回列表列表 香港专业教育学院使用这个

def pages
  pages =[]
  self.chapters.each do |c|
    c.pages.each do |p|
      pages << p
    end
  end
end

我是ruby的新手,使用php和c#background,我知道我可以直接在故事和页面之间建立关联或创建自定义查询(INNER JOIN)。

但是我想把头包裹在地图上,稍微减少一些方法。

1 个答案:

答案 0 :(得分:0)

无需创建自己的自定义方法,Rails已将此提供为has_many :through associations

class Story < ActiveRecord::Base
  has_many :chapters
  has_many :pages, :through => :chapters
end