2013-05-11 3 views
0

Я просто добавил новое поле в мое приложение Rails, которое использует базу данных MySQL. У меня есть CSV, который содержит значения для нового поля (имя) для записей, уже находящихся в таблице.Массовое обновление базы данных MySQL из CSV

Article (table) 
_______________ 
id | name 

В первом поле CSV поле id, а во втором - это имя. Я хочу обновить таблицу статей, обновив поле имени на основе поля id в CSV. Может кто-то, пожалуйста, помогите мне написать MySQL-запрос для этого?

ответ

1
CSV.open('file_path.csv', 'r').each do |row| 
    article = Article.find_by_id(row[0]) 

    article.update_attribute(:name, row[1]) if article 
end 

Я использовал find_by_id потому что она возвращает nil, если ничего не найдено, в то время как find возвращает исключение ActiveRecord :: RecordNotFound.

Смежные вопросы