2016-07-11 2 views
0

Я надеюсь, что заголовок будет правильным. Использование проекта Rails 5 с PostgreSQL и Ruby 2.3.1.Обновить модель с объектами столбцов

Я включил hstore в моем приложении. Я не знаю, как правильно обновить столбец таблицы с данными объекта. Имеют смысл?

# There will be only two arrays: 
cars = ["honda", "bmw"] 
rate = [1, 2] 

cars.zip(rate).map do |c,r| 
    Foo.find(1).update_attributes(bar: {c => r}) 
end 
# Foo.find(1).bar = {"bmw" => 2} 

Я ожидаю:

# Foo.find(1).bar = {"honda" => "1", "bmw" => 2} 

Как получить два значения в bar?

Я пытался установить one of my previous questions в это, но не уверен, с чего начать.

ответ

1

Вы можете создать хэш из массива

a = cars.zip(rate) 
Foo.find(1).update_attributes(bar: Hash[a]) 

или если вам нужна нумератор

cars.zip(rate).each_slice(2) { |x| Foo.find(1).update_attributes(bar: Hash[x]) } 
Смежные вопросы