在Rails 3.1中,我知道你可以检查是否可以更改模型对象的给定实例,但是如何检查模型的has_many关联的任何实例是否发生了变化。
例如假设我有一个包含许多LineItem的Order。 LineItems被添加到Order中,我希望能够检查Order的LineItems是否有任何变化。我想一种方法是循环遍历Order模型中的每个LineItem,如下所示:
def line_items_changed?
self.line_items.each do |item|
if item.changed?
return true
else
return false
end
end
end
但是如果有内置或更有效的方式,我很好奇。
答案 0 :(得分:7)
更短的解决方案:
def line_items_changed?
line_items.any?(&:changed?)
end