以下查询返回我要更新的AR对象集合:
Variant.all(:joins => { :candy_product => :candy }, :conditions => "candies.name = 'Skittles'")
我正在尝试做以下事情:
Variant.update_all(:price => 5, :joins => { :candy_product => :candy }, :conditions => "candies.name = 'Skittles'")
这应该只更新从原始查询返回的变体的价格。这可能是AR还是我必须编写SQL?这是一个非常大的集合,所以迭代的任何东西都出来了。
使用Rails 2.3.4。
答案 0 :(得分:4)
正如@FrançoisBeausoleil指出的那样,我们应该使用scoped
Variant.scoped(:joins => { :candy_product => :candy }, :conditions => "candies.name = 'Skittles'").update_all(:price => 5)