0

我可能误解了事情是如何运作的,但这里是这样。

我有一个项目(一个人)的表格,一个人有几个项目。现在我希望为名称文本字段生成的 html 将具有类似这样的名称属性: [person][0][project][name] 用于第一项和 [person][1][project][ name] 用于第二个项目,依此类推。而且我认为下面的代码会给我这个,但是它只会产生 [person][project][name] 这是一个问题,因为这意味着每当您提交此表单时,实际上只会发布一个文本字段。

<%= form_for @person do |person_form| %>
  ...
  <% @person.projects.each do |project| %>
    <% if project.active? %>
      <%= person_form.fields_for :projects, project do |project_fields| %>
        Name: <%= project_fields.text_field :name %>
      <% end %>
    <% end %>
  <% end %>
  ...
<% end %>

在此先感谢您的任何指点。

4

1 回答 1

0

我希望以下解决方案对您有所帮助。

<%= form_for @person do |person_form| %>
  i = 0
  <% @person.projects.each do |project| %>
    <% if project.active? %>
      <%= person_form.fields_for :projects, project do |project_fields| %>
        Name: <%= project_fields.text_field :name, name: "person[#{i}][project][name]" %>
      <% end %>
      <% i += 1 %>
    <% end %>
  <% end %>
  ...
<% end %>
于 2013-10-10T07:57:19.917 回答