2012-09-03 16 views
16

Estoy haciendo mi propia vista personalizada que necesito para 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 implementar para los campos básicos, pero prefiero usar un parcial de form_filtering_select para las asociaciones del modelo en línea, pero no puedo encontrar ninguna documentación para hacerlo.¿Utiliza los formularios rails_admin en las vistas personalizadas?

Respuesta

0

Hay una joya genial que hace más o menos lo que quieres. Se llama Nested Form Fields. 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 forma dinámica sin una recarga de página. Verifique las gemas docs para un uso correcto. ¡Espero que ayude!

+0

Te daré la recompensa si agregas un ejemplo usando Campos de formulario anidados. – max

1

Puede utilizar Nested Form

Considérese una clase de usuario que devuelve un conjunto de instancias de proyectos a partir del método de proyectos lector y responde a la projects_attributes = método de escritor:

class User 
    def projects 
    [@project1, @project2] 
    end 

    def projects_attributes=(attributes) 
    # Process the attributes hash 
    end 
end 

Tenga en cuenta que la projects_attributes = escritor De hecho, se requiere un método para fields_for para identificar correctamente: proyectos como una colección, y los índices correctos que se establecerán en el formulario de marcado.

Cuando los proyectos que ya es una asociación de usuario puede utilizar accepts_nested_attributes_for para definir el método escritor para usted:

class User < ActiveRecord::Base 
    has_many :projects 
    accepts_nested_attributes_for :projects 
end 

Este modelo se puede utilizar ahora con un fields_for anidada. El bloque dado a la llamada fields_for anidada se repetirá para cada instancia de 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 el Reference para más detalles.

+0

¿Tiene un ejemplo de lo que escribiría para procesar los atributos hash en este ejemplo? – pappy

Cuestiones relacionadas