我希望rails查询类似于:
UPDATE users SET name="test" WHERE name="test1"
答案 0 :(得分:43)
User.update_all({name: 'test'},{name: 'test1'}) # deprecated since Rails 4
或
User.where(name: 'test1').update_all(name: 'test')
答案 1 :(得分:7)
User.where("name like 'test1'").update_all("name = 'test'")
答案 2 :(得分:0)
@Vijay Chouhan, 试试这个,这将提供您所需的相同查询。
User.where(名称:“test”) - >这将为您提供ActiveRecord :: Relation数组,因此将其转换为简单数组,如
u = User.where(名称:“test”)。to_a
如果u.count 等于1,则将其用作最终查询 -
**** final Query - > **** User.where(name:“test”)。to_a.first.update(name:“test1”)
其他u.count 大于1,然后像
一样循环**** final Query - > **** User.where(name:“test”)。to_a.each {| x | x.update(名称:“test1”)}
这对你有帮助....
**OR**
嘿@Vijay Chouhan,
刚才我找到了最好的解决方案 -
User.where(name:test).update_all(“name ='test1'”)
答案 3 :(得分:0)
单次检查
User.where(name: 'test1').update_all(name: 'test')
如果您需要多个
User.where(name: ['test1','test2']).update_all(name: 'test')