本文介绍了我可以在播种时将我的所有产品更新给特定用户吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何更新所有产品以将特定用户分配给它们?

How can I update all of products to assign a certain user to them?

admin = User.create(:name => "Admin", :password => "password")

walmart = Store.create(:name => 'Walmart', :address => 'San Francisco, Palo Alto')

walmartprices = walmart.products.create
([
  {:name => "Rice",    :price => '5.93'},
  {:name => "Chicken", :price => "2.24"},      
  {:name => "Milk",    :price => '3.81'},
  {:name => 'Eggs',    :price => '2.78'}
])

walmartprices.update_attribute(:user => admin)

当然这给了我一个错误:

Of course this gives me an error:

undefined method `update_attribute' for #<Array:0x5342f70>

这可能吗?怎么办?

编辑

这些是我的联想:

Product
 belongs_to :user and :store

Store
 has_many :products

User
  has_many :products

推荐答案

一种天真的方法是:

walmartprices.each{|record| record.update_attribute(user: admin) }

为了获得更好的性能,请使用 update_all :

for better performance, use update_all :

Product.where( id: walmartprices.map(&:id) ).update_all( user: admin )

这篇关于我可以在播种时将我的所有产品更新给特定用户吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 14:43