1. ホーム
  2. ruby-on-rails

[解決済み] Rails: fields_for with index?

2022-10-31 23:02:12

質問

を行う方法(または似たような機能を実現する方法)はあるのでしょうか? fields_for_with_index ?

<% f.fields_for_with_index :questions do |builder, index| %>  
  <%= render 'some_form', :f => builder, :i => index %>
<% end %>

レンダリングされるパーシャルは、現在のインデックスが fields_for ループ内の現在のインデックスを知る必要があります。

どのように解決するのですか?

以下の回答は何年も前に投稿されたものです。現代のアプローチについては、以下を参照してください。 https://stackoverflow.com/a/22640703/105403


これは実際に、Railsのドキュメントにもっと忠実に従った、より良いアプローチでしょう。

<% @questions.each.with_index do |question,index| %>
    <% f.fields_for :questions, question do |fq| %>  
        # here you have both the 'question' object and the current 'index'
    <% end %>
<% end %>

から http://railsapi.com/doc/rails-v3.0.4/classes/ActionView/Helpers/FormHelper.html#M006456

<ブロッククオート

を指定することも可能です。 インスタンスを指定することもできます。

  <%= 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 %>