Все, что я пытаюсь сделать, это сохранить двумерный хэш в столбце базы данных в приложении Ruby on Rails.Я только учусь тому, как использовать фреймворк, и эта задача доставляет мне много горя.Я сделал все возможное, чтобы не делать глупых ошибок, хотя я считаю, что моя проблема проистекает из одной.
Итак, я делаю хэш в контроллере и устанавливаю его как значение поляв моем объекте, затем вызовите save.
Код:
@instance = Model.find(:first, :conditions => "id = 1"}
@instance.hash_field = Hash.new { |h, k| h[k] = Hash.new { |h1, k1| h1[k1] =0 }}
@instance.other_field = "some string"
@instance.save
other_field
сохранит новое значение и сохранит его при последующих извлечениях из базы данных.Поле 'hash_field' всегда будет сбрасываться в ноль, когда я снова извлекаю экземпляр из базы данных.Это происходит несмотря на то, что значение @ instance.hash_field имеет правильное значение в контроллере и представлении.Это позволяет мне быть уверенным в том, что проблема заключается в сохранении хэша в базе данных.
У меня есть оператор
:serialize :hash_field
в моей модели и его столбец в таблице базы данных.объявлен с типом «текст».Любые указатели сделают меня очень счастливым человеком.
- Крис