2011-09-17 117 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

相關問題