ошибка в значениях хеш-кода для объектов в рельсах ruby ​​onr - PullRequest
0 голосов
/ 07 января 2012

У меня проблемы с передачей хеша (сериализованного как хеш) во вновь созданный объект.Значения преобразуются в формат yaml.

Примите во внимание следующее:

Model ComputerUser:

...
serialize preferences  
'#in the database I see the following "{0=>{color:red format:html}}"

    ....

   @computer_user.registrations.build(:user_pref => :preferences}.save 
   @computer_user.user_pref;

'# вышеприведенный оператор выводит данные в формате yaml, и именно так они сохраняются в БД.

Теперь, если я сделаю следующее из консоли rails, я не увижу ту же проблему, то есть хэш сохраняется как хэш и не преобразуется в формат yaml.Когда я проверяю значение столбца в новом объекте, я вижу следующее:

=>{0=>{color:red format:html}}

Обратите внимание, что я использовал сериализацию для атрибутов в источнике, а также в цели.Вещи, кажется, работают с консоли, но просто обратите внимание от контроллера!Есть идеи, что происходит?Почему проблема возникает только в веб-приложении, а не на консоли.

1 Ответ

0 голосов
/ 07 января 2012

Проблема заключалась в том, что я не использовал переменные экземпляра для присваивания.

Если у вас есть «serialize, Hash», объявленный в обоих классах, вот как вам нужно построить дочерний объект из родительского:

    @computer_user.registrations.build(:user_prefs => @computer_user.preferences).save

Это работает как шарм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...