ruby-on-rails - formularios - rails admin wiki
¿Usar los formularios rails_admin en vistas personalizadas? (2)
Hay una gema genial que hace prácticamente lo que quieres. Se llama Campos de Formulario Anidado . Le permite editar registros (junto con sus asociaciones has_many) en una sola página. Lo bueno de esto es que incluso usa jQuery para agregar / eliminar campos de formulario dinámicamente sin una recarga de página. Echa un vistazo a los documentos de gemas para su uso adecuado. ¡Espero que ayude!
Estoy creando mi propia vista personalizada de que necesito hacer que el proceso de creación de modelos asociados sea menos doloroso para mis usuarios. Quiero mostrar todas las piezas asociadas de los modelos en línea, con controles para editarlas. Esto es bastante fácil de usar para los campos básicos, pero prefiero usar un parcial de selección de form_filtering_select
para las asociaciones del modelo en línea, pero no puedo encontrar ninguna documentación para hacer esto.
Puedes usar el formulario anidado
Considere una clase de usuario que devuelve una matriz de instancias de Project del método del lector de proyectos y responde al método projects_attributes = writer:
class User
def projects
[@project1, @project2]
end
def projects_attributes=(attributes)
# Process the attributes hash
end
end
Tenga en cuenta que el método projects_attributes = writer es, de hecho, necesario para que fields_for identifique correctamente: los proyectos como una colección y los índices correctos que se establecerán en el formato del formulario.
Cuando los proyectos ya son una asociación para el usuario, puede utilizar accept_nested_attributes_for para definir el método de escritura para usted:
class User < ActiveRecord::Base
has_many :projects
accepts_nested_attributes_for :projects
end
Este modelo ahora se puede utilizar con un fields_for anidado. El bloque dado a los campos anidados para la llamada se repetirá para cada instancia en la colección:
<%= nested_form_for @user do |user_form| %>
...
<%= user_form.fields_for :projects do |project_fields| %>
<% if project_fields.object.active? %>
Name: <%= project_fields.text_field :name %>
<% end %>
<% end %>
...
<% end %>
Aquí va la Reference para más detalles.