Я ищу способ сохранить сериализованное значение, например.Идентификаторы в столбце.Ранее утверждалось, что это неоптимальный дизайн: столбец используется для идентификаторов связанных записей, но будет использоваться только при отображении записи - поэтому не выполняется никаких запросов с выбором по столбцу, и в этом столбце не будет выполнено никаких соединенийЛибо.
В Rails я могу сериализовать столбец с помощью:
class Activity
serialize :data
end
Это кодирует столбец как YAML.Для удобства и поскольку я храню только одномерные массивы, содержащие только целые числа, я считаю более подходящим хранить его в виде значения, разделенного запятыми.*
def data=(ids)
ids = ids.join(",") if ids.is_a?(Array)
write_attribute(:data, ids)
end
def data
(read_attribute(:data) || "").split(",")
end
Это работает довольно хорошо.Однако я хотел бы добавить методы, подобные массиву, к этому атрибуту:
activity = Activity.first
activity.data << 42
...
Как бы я это сделал?