Динамические Active Access Record Store на основе пользовательской формы?
Active Record Store позволяет сериализовать параметры внутри одной ячейки.
То есть
class User < ActiveRecord::Base
store :options, accessors: [ :option1, :option2, :another_random_option ]
end
Все средства доступа сериализуются внутриопции" колонка таблицы пользователей сейчас.
u = User.new
u.option2 = 'some option'
u.option2 # => 'some option'
Это прекрасно работает для моего приложения, потому что мне приходится создавать много форм ежедневно, где 90% формы одинаковы (имя пользователя, хобби, интересы и т. Д.), А затем 10% - без схемы (random_option_here, another_random_option_in_another_form) , Мне также никогда не нужно сортировать по параметрам без схемы.
Я создал 1 таблицу для 90% полей формы, которые всегда одинаковы, а затем у меня есть другая таблица с последними 10% полей (причина, по которой у меня другая таблица, заключается в том, что это отношение own_to Таким образом, пользователь может иметь много строк в этой таблице).
...
Теперь единственная проблема заключается в том, что каждый раз, когда я создаю новое поле в пользовательской форме, мне нужно добавить этот параметр в средства доступа к Active Record Store, в противном случае я получаю ошибку об отсутствии метода. Было бы хорошо, если бы я мог просто войти и создать столько форм представления, сколько я хочу, для полей без схемы и никогда не обновлять методы доступа в модели.
Итак, мой вопрос: есть ли в любом случае динамически добавить все пользовательские поля, представленные пользователем в массив accessors, таким образом, если пользователь представил поля "some_random_option1221 ","another_option_here» тогда я ненужно пойти в массив accessors и добавить это поле?
Спасибо!