0

我有一张桌子:(family_children模型是family_child)家庭有很多孩子。

我得到这样的孩子:

@family_children = @family.children

where.children是与family_children表的关联。

在一个视图中,我想遍历孩子,并将它们中的每一个放在一个 text_field 中。当然,当页面发布时,我需要这些字段作为参数。即我认为我应该让孩子们成为一个数组。

我怎样才能做到这一点?

我的意思是,如果我会写

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

我真的没有得到我需要的东西。

4

4 回答 4

1

在您看来尝试这样的事情:

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

这应该在发布后返回 params[:children],它应该是一个数组。我不确定要在文本框中显示的属性的名称,所以我假设它被称为“名称”。

于 2013-06-18T14:38:40.017 回答
0

您想将children的名称作为页面文本的一部分放在表单域或视图中吗?你能包括视图文件吗?

于 2013-06-18T14:56:27.280 回答
0

实际上,@family_childrenobject 就像数组一样,所以你可以简单地调用eachor map

于 2013-06-18T14:27:26.613 回答
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 %>
于 2013-06-18T15:05:25.990 回答