0

免责声明:对不起,奇怪的标题,找不到合适的标题。此外,以下代码只是一个快速示例,对于没有遵循本书的约定,我深表歉意。

所以在这个例子中,我只想得到一个房子里的所有衣服Array。鉴于布料属于人,人属于房子,我做了如下:

def clothes
  clothes = []
  current_house.people.each do |person|
    person << person.clothes
  end
  clothes
end

Ruby 1.9.3 和 Rails 3.2 中是否有任何方法可以使这种方法成为单线

提前致谢。

4

2 回答 2

3

这一个班轮是:

class House < ActiveRecord::Base
  has_many :clothes, :through => :people
end

然后你可以打电话:

 current_house.clothes
于 2013-09-25T13:29:44.963 回答
1

如果您不想clothes在模型中定义新的关联House,您仍然可以执行以下操作:

def clothes
  current_house.people.collect{ |p| p.clothes }.flatten
end

但我强烈建议选择 BroiSatse 的解决方案来定义一个新的关联。

于 2013-09-25T13:40:08.687 回答