MYSQL Query в Rails
Необходимо обновить поле в моей базе данных MySQL. Хотелось бы использовать следующий запрос внутри рельсов:
update users set exported = TRUE where id = #{name[12]}
В настоящее время есть следующее:
db = Mysql2::Client.new( :host => 'localhost', :username => 'username', :password => 'password', :database => 'database')
results = db.query("select * from users where start_date is not NULL AND exported = 0").each(:as => :array)
results.each do |name|
db.query("update users set exported = TRUE where id = #{name[12]}")
end
индекс 12 равен UID.
2 ответа
Я хотел бы предложить вам использовать ActiveRecord
для вызовов базы данных, когда вы используете Ruby on Rails.
Я предполагаю, что у вас есть хотя бы базовый User
модель как это:
class User < ApplicationRecord
end
С User
модель так, что ваш запрос может выглядеть так:
User.where.not(start_date: nil).where(exported: false).update_all(exported: true)
Если вы используете рельсы, я бы предложил использовать ActiveRecord. Ваше обновление будет:
@users = User.find(:all, :where => 'start_date is not null and exported = 0 and id = ?', name[12])
@users.each{ |user|
user.exported = true
user.save!
}
Надеюсь, это поможет! Оставьте комментарий, если вам нужна дополнительная помощь.