2011-09-17 63 views
0

的Rails 3.1的Ruby 1.8.7检查是否所有的子对象都属于同一个父对象?

我有Group,这:has_many => :items

我有Item,这:belongs_to => :group

然后,我有时运行在返回许多项的搜索 - 可能会或可能不会全部属于同一组。

如果返回数组中的所有项都属于同一个父(组),是否有方法检查视图?

我能想到的最好的是这样的:

##Application Helper 
def belongs_to_same_group(items) 
    group = items.first.group 
    items.each do |item| 
    return false if item.group != group 
    end 
    return true 
end 

,但我想红宝石或导轨有一些伟大的单行针对这些情况,我不知道/我不纯熟不够考虑到。

回答

2

这里是一个班轮:

items.map(&:group_id).uniq.length == 1 

,或者另一种方式来写你已经做了:

items.all? {|item| item.group_id == items.first.group_id } 
+0

地图(:GROUP_ID)会更好 - 你避免取组对象 – klochner

+0

作品,改变 – numbers1311407

+0

Arg。我刚看到.all?今天早些时候。这种感冒正在杀死我!跟地图一起去。谢谢! – d3vkit

相关问题