我有一张桌子:family_children
(模型是family_child
)家里有很多孩子。
我让孩子们这样:
@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 [:children],这应该是一个数组。我不确定要在文本框中显示的属性的名称,所以我假设它被称为“名称”。
答案 1 :(得分:0)
实际上,@family_children
对象充当数组,因此您只需在其上调用each
或map
即可。
答案 2 :(得分:0)
是否要将children
的名称放在表单字段或视图中作为页面文本的一部分?你能包括视图文件吗?
答案 3 :(得分:0)
因为你想要将family_children数据发布,你需要看到嵌套属性的概念。请参阅http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html和http://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 %>