2012-09-03 18 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