Ruby On Rails — Можем ли мы использовать столбец varchar для сохранения сериализованных данных

#ruby-on-rails #activerecord

#ruby-on-rails #activerecord

Вопрос:

Необходимо сохранить сериализованный хэш в mysql. Поскольку размер хэша будет очень маленьким, я решил использовать varchar для сохранения сериализованных данных вместо текстового столбца. Я использую mysql с rails 3.

Модель:

 class User < ActiveRecord::Base
  serialize :monday
end
  

Когда я делаю следующее,

 u = User.new
u.monday = {:from => "10:00", :to => "04:00"}
u.save
  

Я получаю следующую ошибку «TypeError: требуется класс или модуль». Разве мы не должны использовать varchar для сериализованных данных?

Комментарии:

1. Не уверен, что вы можете сохранить диапазон (два раза) в одном столбце даты или времени. Где определены ‘from’ и ‘to’. большинство проблем в rails связаны с нестандартным использованием. кстати, не выбирайте тип данных, основанный на том, что хэш «очень маленький». выбирайте хорошие решения, которые просты в обслуживании, и перечитывайте, пытаясь упаковать информацию в меньшее количество байтов. К счастью, в наши дни это требует меньше энергии и хранилища gicen

Ответ №1:

Для использования опции сериализации вам нужен тип данных :text database.