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
但是我猜测ruby或者rails对于这些我不了解/不够熟练的情况有一些很好的单行程。
答案 0 :(得分:2)
这是一个班轮:
items.map(&:group_id).uniq.length == 1
或另一种写你已做过的方式:
items.all? {|item| item.group_id == items.first.group_id }