¿Los accesores de Dynamic Active Record Store se basan en un formulario de usuario?

Active Record Store le permite serializar parámetros dentro de una sola celda.

Es decir.

class User < ActiveRecord::Base
  store :options, accessors: [ :option1, :option2, :another_random_option ]
end

Todos los accesores están serializados dentro de la columna "opciones" de la tabla de usuarios ahora.

u = User.new
u.option2 = 'some option'
u.option2 # => 'some option'

Esto funciona muy bien para mi aplicación porque tengo que crear muchos formularios diariamente, donde el 90% del formulario es el mismo (nombre de usuario, aficiones, intereses, etc.) y luego el 10% no tiene esquema (random_option_here, another_random_option_in_another_form) . Tampoco necesito ordenar por las opciones sin esquema.

Lo que hice fue crear 1 tabla para el 90% de los campos de formulario que siempre son iguales, y luego tengo otra tabla con el último 10% de los campos (la razón por la que tengo otra tabla es porque esta es una relación de pertenencia a relación , por lo que el usuario puede tener muchas filas en esta tabla).

<%= form_tag do %> 
  <%= #render partial form for an object that has non-changing fields %>
  ...
  <%= #render a schema-less partial form based off an ID passed here %>
<% end >

Ahora, el único problema es que cada vez que creo un nuevo campo en el formulario personalizado, tengo que agregar ese parámetro a los accesores de Active Record Store, de lo contrario obtengo un error de método faltante. Sería bueno si pudiera entrar y crear tantos formularios de Vista como quiera para los campos sin esquema y nunca actualizar los accesores en el Modelo.

Entonces, mi pregunta es: ¿hay alguna forma de agregar dinámicamente todos los campos personalizados enviados por el usuario a la matriz de accesores? ¿Ese campo?

¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta