次のようなhas_many
,関係でネストされたフィールドを構築しています。belongs_to
app/controllers/widgets_controller.rb
def new
@widget = Widget.new
3.times { @widget.gizmos.build }
end
app/views/widgets/_form.html.erb
<%= form_for @widget do |f| %>
...
<%= f.fields_for :gizmos do |b| %>
<%= render 'gizmo_fields', f: b %>
<% end -%>
...
<% end -%>
app/views/widgets/_gizmo_fields.html.erb
<%= f.label :name "Gizmo -NUMBER-" %>
<%= f.text_field :name %>
gizmo
の総数から数をプログラムで決定するにはどうすればよいですかwidget.gizmos
。それぞれの出力は次のようになります。
Gizmo 1 |_____text_____|
Gizmo 2 |_____text_____|
Gizmo 3 |_____text_____|
私が避けたいこと:
- Javascript の使用- バニラの JavaScript または jquery を使用してこれらに番号を付けることができることはわかっています。コードを理解しやすくするだけでなく、ネストされたフィールドについてもっと学びたいと思っています。
- 変数のインクリメント- 繰り返しになりますが、ネストされたフィールドのコンテキストについてさらに学び、ネストされたフィールドに番号を付けるより動的で具体的な方法があるかどうかを確認したいと思います。
私がすでに知っていること:
- の現在のインスタンスにアクセスでき
gizmo
ますf.object
- レコードがまだ保存されていないため、アクションに
f.object.widget
アクセスできませんnew