2013-06-18 43 views
0

我有一張表:family_children(模型是family_child)家裏有很多孩子。遍歷視圖中的記錄並創建text_fields

我得到的孩子是這樣的:

@family_children = @family.children 

其中.children是一個關聯到family_children表。

在一個視圖中,我想遍歷兒童,並將它們放在text_field中。當然,當頁面發佈時,我需要這些字段作爲參數。即我認爲我應該讓孩子們成爲一個陣列。

我該如何做到這一點?

我的意思是,如果我會寫

<%= text_field 'child', 'name' %> 

我真的不明白我需要什麼。

+0

能否請您提供更多的信息?您希望添加這些字段的形式,我的意思是在家庭形式或其他地方?你想如何訪問他們在控制器等 –

回答

1

嘗試這樣的事情在你看來:

<% @family_children.each_with_index do |c, i| %> 
    <%= text_field_tag "children[#{i}]", c.name %> 
    <br /> 
<% end %> 

這應返回PARAMS [:兒童]發佈後,這應該是一個數組。我不確定你想在文本框中顯示的屬性名稱,所以我假設它被稱爲'名稱'。

+0

我得到的HTML:'' 。爲什麼是所有的下劃線?爲什麼我得到我而不是數字?這是你想要的輸出嗎? –

+0

對不起 - 在打算雙引號時加上單引號。編輯了我的答案,現在應該生成一個名稱屬性,如下所示:name =「children [1]」 –

0

實際上,@family_children對象作爲數組,因此您可以簡單地調用eachmap就可以了。

+0

但text_field應該怎麼樣? –

+0

那你到底想做什麼? –

+0

再看看我的問題的結尾,請 –

0

您是否想將children的名稱放在表單域或視圖中作爲頁面文本的一部分?你能包括視圖文件嗎?

0

因爲你想要發佈的family_children數據,你需要看到嵌套屬性的概念。請參閱http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.htmlhttp://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for

class Family 
    has_many :children, :class => "FamilyChild" 
    accepts_nested_attributes_for :children 
end 

class FamilyChild 
    belongs_to :family 
end 

和形式可以是作爲

<%= form_for @family do |p| %> 
    First name: <%= p.text_field :first_name %> 
    Last name : <%= p.text_field :last_name %> 

    <%= fields_for @family.children do |c| %> 
    <%= c.text_field :child_name %> 
    <% end %> 
    <%= f.submit %> 
<% end %>