在我的Rails表单的嵌套属性部分中,我想为具有下一个整数的表单预填充标签(因此输入1将是#1,输入2#2)。看起来非常简单,但我没有成功使用i+1
这样:
<%= f.fields_for :points_allocations, PointsAllocation.new do |points, i| %>
<tr>
<td>
<%= points.label "points_#{i+1}" %>
<%= points.number_field :place, class: "form-control" %>
</td>
</tr>
<% end %>
反过来,我收到错误undefined method
+&#39;为零:NilClass`。
这让我感到困惑,因为我不明白为什么它在这里调用方法而不是应用数学逻辑将1添加到前一个整数。
构建此表单的更好方法是什么?
答案 0 :(得分:1)
尝试将i
转换为整数:
<%= points.label "points_#{i.to_i+1}" %>
答案 1 :(得分:1)
i
为nil
,因此错误。
试试这个:
<%= f.fields_for :points_allocations, PointsAllocation.new do |points| %>
<tr>
<td>
<%= points.label "points_#{points.index + 1}" %>
<%= points.number_field :place, class: "form-control" %>
</td>
</tr>
<% end %>
您使用的是哪个版本的Rails?