Ответ 1
User.update_all({name: 'test'},{name: 'test1'}) # deprecated since Rails 4
или
User.where(name: 'test1').update_all(name: 'test')
Я хочу рельсы запросов, похожих на:
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'")
Для разовой проверки
User.where(name: 'test1').update_all(name: 'test')
Если вам требуется несколько
User.where(name: ['test1','test2']).update_all(name: 'test')
@Виджей Чохан, Попробуйте это, это даст тот же запрос, что и вам.
User.where(name: "test" ) → это даст вам массив ActiveRecord:: Relation, чтобы преобразовать его в простой массив, например
u = User.where(name: "test" ). to_a
, если u.count равен, равному 1, затем используйте это как окончательный запрос -
**** final Query → **** User.where(name: "test" ). to_a.first.update(name: "test1" )
else u.count больше 1, затем создайте цикл, подобный
**** final Query → **** User.where(name: "test" ). to_a.each {| x | x.update(name: "test1" )}
Это может быть полезно для вас....
**OR**
Эй @Виджей Чохан,
Сейчас я нашел лучшее решение, которое есть -
User.where(name: test).update_all ( "name = 'test1'" )