Я строй вложенных полей с 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
действий, поскольку запись еще не сохранена
Hm ... нет такой удачи ... The статья кажется немного устаревшей. –