2015-07-07 4 views
0

У нас есть таблица, в которой хранится ключ хэш данных и значение, как показано нижеОбновление хэш-значение в рубине на рельсах

sr_category_id_is"=>["194", "195", "196", "197", "198", "199"]} 

Нам необходимо обновить значение с помощью миграции.

Образец данных:

facets: {"status_x_days"=>"", "sr_category_id_is"=>["194", "195", "196", "197", "198", "199"]} 
+0

Переносить данные на что? Вас беспокоит формат хэша, когда он сериализуется в базе данных или? –

+0

существующее значение было изменено для некоторых идентификаторов, поэтому нам необходимо их обновить, то же самое нужно применять в производстве, поэтому мы используем миграцию –

ответ

0

вы не можете обновить хэш непосредственно в вашей БД. Вы должны назначить существующий хеш переменной, внести изменения в эту переменную, назначить ее обратно объекту ActiveRecord и обновить его.

Пример. Рассмотрите адрес пользователя хеш

user = User.first 
address = user.address 
address[:City] = "Ahmedabad" #Changed the city from Delhi to Ahmedabad 

user.address = address 
user.save 
+0

Вы уверены? Хэш сериализуется как обычный текст, не так ли? Поэтому я полагаю, что знание формата обычного текста, хранящегося в базе данных, позволит вам изменить его напрямую. –

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