-2

我有一个与章节有 has_many 关系的 Stories Chapter has_many 与 pages 的关系

我想使用 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# 背景,我知道我可以通过故事和页面之间的直接关联或创建自定义查询(INNER JOIN)来做到这一点。

但是想把我的头绕在地图上,减少一点方法。

4

1 回答 1

0

无需创建自己的自定义方法,Rails 已经将其作为has_many :through关联提供:

class Story < ActiveRecord::Base
  has_many :chapters
  has_many :pages, :through => :chapters
end
于 2012-10-20T02:33:39.837 回答