Как написать обновить все условно запросы в rails4 Я хочу рельсы запросов, похожих на: UPDATE users SET name="test" WHERE name="test1" Ответ 1 User.update_all({name: 'test'},{name: 'test1'}) # deprecated since Rails 4 или User.where(name: 'test1').update_all(name: 'test') Ответ 2 User.where("name like 'test1'").update_all("name = 'test'") Ответ 3 Для разовой проверки User.where(name: 'test1').update_all(name: 'test') Если вам требуется несколько User.where(name: ['test1','test2']).update_all(name: 'test') Ответ 4 @Виджей Чохан, Попробуйте это, это даст тот же запрос, что и вам. 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'" )
Ответ 1 User.update_all({name: 'test'},{name: 'test1'}) # deprecated since Rails 4 или User.where(name: 'test1').update_all(name: 'test')
Ответ 3 Для разовой проверки User.where(name: 'test1').update_all(name: 'test') Если вам требуется несколько User.where(name: ['test1','test2']).update_all(name: 'test')
Ответ 4 @Виджей Чохан, Попробуйте это, это даст тот же запрос, что и вам. 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'" )