Предположим, у меня есть две модели: человек и поле в системе управления персоналом. Я хочу позволить пользователям системы добавлять пользовательские атрибуты в модель Person, создав для нее поле. Таким образом, моя модель Person будет содержать строку типа
class Person < ActiveRecord::Base
store :fields, accessors: Field.all.pluck(:name), coder: JSON
end
Это, однако, не работает, потому что класс кэшируется, и поэтому новые поля не добавляются. Обычно я хотел бы использовать Proc или lambda, но это не сработает.
Есть ли простое решение этой проблемы, которое не зависит от добавления драгоценного камня? Могу ли я сделать это без использования ActiveRecord Store и с сериализованным столбцом, но где у меня сохраняется возможность выполнять проверки и отслеживать изменения атрибутов?