从Rails表单中获取数组

Ana*_*and 6 ruby ruby-on-rails ruby-on-rails-3

我需要为account资源设计一个表单.在那种形式中,我需要在一个params名为hash的属性中收集一些id作为数组relationships.

所以params[account]POST请求的最终哈希应该是这样的:

{:name => 'somename', :relationships => ["123", "23", "23445"]}
Run Code Online (Sandbox Code Playgroud)

我该如何设计form_for田地?我试过这个,但没有用:

<%= form_for @account do |f| %>
    <%= f.text_field :name %>

    <% @eligible_parents.each do |p| %>
        <%= f.check_box "relationships", nil, :value => p.id  %>
        <b><%= p.name %></b><br/>
      </span>
    <% end %>

    <%= f.submit "Submit" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

元素@eligible_parents数量每次都不同.

relationships既不是account模型中的关联也不是属性.

我必须使用虚拟属性,但我需要从表单填写一个数组.

请帮忙.我怎样才能做到这一点?

Azo*_*olo 6

你仍然需要fields_for在你看来,只需使用:relationshipsrecord_name然后提供一个对象.

<%= form_for @account do |f| %>
    <%= f.text_field :name %>

    <% fields_for :relationships, @eligible_parents do |p| %>
        <%= p.check_box "relationships", nil, :value => p.object.id  %>
        <b><%= p.object.name %></b><br/>
    <% end %>

    <%= f.submit "Submit" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

这里的文档:ActionView :: Helpers :: FormHelper