免责声明:很抱歉这个奇怪的标题,找不到合适的标题。此外,以下代码只是一个快速的例子,我为不遵守本书的惯例而道歉。
所以在这个例子中,我只想把所有的衣服放在Array
的房子里。鉴于布属于人,而人属于房子,我做了如下:
def clothes
clothes = []
current_house.people.each do |person|
person << person.clothes
end
clothes
end
Ruby 1.9.3和Rails 3.2中是否有任何方法可以将此方法设为一个班次?
提前致谢。
答案 0 :(得分:3)
这一个班轮是:
class House < ActiveRecord::Base
has_many :clothes, :through => :people
end
然后你可以打电话:
current_house.clothes
答案 1 :(得分:1)
如果您不想在clothes
模型中定义新的House
关联,您仍然可以执行以下操作:
def clothes
current_house.people.collect{ |p| p.clothes }.flatten
end
但我强烈建议选择BroiSatse的解决方案来定义新的关联。