#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.