rai*_*new 13 activerecord ruby-on-rails
在ActiveRecord中,我们如何在不担心/知道主键的情况下更新记录.
如果我做
Address.update(15, :user_name => 'Samuel')
它对应于
UPDATE addresses set user_name = 'Samuel' where id = 15
但是,如果我想做什么:
UPDATE addresses set user_name = 'Samuel' where cid = 15
什么是ActiveRecord相当于那?
我试过了:
Address.update({:cid => 15}, :user_name => 'Samuel')
但这不起作用.
typ*_*ror 43
使用update_all类方法:
Address.where(:cid => 15).update_all(user_name : 'Samuel')
http://apidock.com/rails/ActiveRecord/Relation/update_all
Fra*_*oto 16
a = Address.find_by_cid(15)
a.user_name = 'Samuel'
a.save
为了澄清@typeoneerror的答案,只需使用update_allActiveRecord :: Relation对象而不是记录对象:
ModelName.where(:unique_id => x).update_all(:name => "x")
| 归档时间: | 
 | 
| 查看次数: | 42756 次 | 
| 最近记录: |