我正在构建具有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 - 我知道我可以用 vanilla javascript 或 jquery 对这些进行编号。我想要一个纯粹的 ruby/rails 解决方案,这样不仅代码更容易理解,而且我希望更多地了解嵌套字段。
- 增加变量- 同样,我想更多地了解嵌套字段的上下文,看看是否有更动态和具体的方法来为嵌套字段编号。
我已经知道的:
gizmo
我可以访问通过的当前实例f.object
- 我无法访问
f.object.widget
该new
操作,因为尚未保存记录