Динамические 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 и добавить это поле?

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос