本文介绍了我可以在播种时将我的所有产品更新给特定用户吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何更新所有产品以将特定用户分配给它们?
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 )
这篇关于我可以在播种时将我的所有产品更新给特定用户吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!