条件 update_all 与 ActiveRecord 中的连接表?
以下查询返回我想要更新的 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。
The following query returns the collection of AR objects that I want to update:
Variant.all(:joins => { :candy_product => :candy }, :conditions => "candies.name = 'Skittles'")
I'm trying to do something like the following:
Variant.update_all(:price => 5, :joins => { :candy_product => :candy }, :conditions => "candies.name = 'Skittles'")
This should only update the price for the variants returned from original query. Is this possible with AR or will I have to write the SQL? This is a pretty large collection, so anything that iterates is out.
Using Rails 2.3.4.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
正如 @François Beausoleil 正确指出的那样,我们应该使用
scoped
As @François Beausoleil pointed correctly we should use
scoped