2012-09-03 19 views
16

我正在制作我自己的自定义视图,我需要使创建相关模型的过程对我的用户不那么痛苦。我想要显示所有与模型相关联的部件,并使用控件编辑它们。对于基本字段,这很容易推出我自己的,但我宁愿使用form_filtering_select局部用于内联模型的关联,但我找不到任何文档来执行此操作。在自定义视图中使用rails_admin表单?

回答

0

那里有一个很酷的宝石,几乎做你想要的东西。它叫做Nested Form Fields。它允许您在单个页面上编辑记录(以及它们的has_many关联)。关于它的一件很酷的事情是,它甚至使用jQuery来动态地添加/删除表单字段,而无需重新加载页面。检查宝石docs正确使用。希望有所帮助!

+0

如果您使用嵌套表单域添加示例,我会为您提供赏金。 – max

1

您可以使用Nested Form

考虑用户类返回从项目读者法工程实例的数组,并响应projects_attributes =作家方法:

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

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

注意,projects_attributes =作家方法实际上是为fields_for正确标识项目所必需的:作为集合的项目和要在表单标记中设置的正确索引。

当项目已经在用户的关联,你可以使用accepts_nested_attributes_for就为您定义的作家方法:

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

这种模式现在可以用一个嵌套fields_for使用。给予嵌套调用fields_for块将重复集合中的每个实例:

<%= 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 %> 

这里去了Reference了解详情。

+0

您是否有我在本例中编写的用于处理属性散列的示例? – pappy