Rails次のようなクエリが必要です:
UPDATE users SET name="test" WHERE name="test1"
User.update_all({name: 'test'},{name: 'test1'}) # deprecated since Rails 4
または
User.where(name: 'test1').update_all(name: 'test')
User.where("name like 'test1'").update_all("name = 'test'")
@Vijay Chouhan、これを試してみてください、これはあなたが要求したのと同じクエリを与えます。
ser.where(name: "test")->これにより、ActiveRecord :: Relation配列が得られるため、次のような単純な配列に変換します
= User.where(name: "test")。to_a
.countが= 1の場合、これを最終クエリとして使用します-
****最終クエリ-> **** User.where(name: "test")。to_a.first.update(name: "test1")
else u.countが1より大きい場合、次のようなループを作成します
****最終クエリ-> **** User.where(name: "test")。to_a.each {| x | x.update(name: "test1")}
それはあなたに役立つかもしれません...
**OR**
@Vijay Chouhanさん、こんにちは。
ちょうど今、私は最高の解決策を見つけました-
ser.where(name:test).update_all( "name = 'test1'")
シングルチェック用
User.where(name: 'test1').update_all(name: 'test')
複数が必要な場合
User.where(name: ['test1','test2']).update_all(name: 'test')