使用下一个整数值预填充Rails表单字段

时间:2016-04-07 03:44:17

标签: ruby-on-rails forms methods

在我的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添加到前一个整数。

构建此表单的更好方法是什么?

2 个答案:

答案 0 :(得分:1)

尝试将i转换为整数:

 <%= points.label "points_#{i.to_i+1}" %>

答案 1 :(得分:1)

您的代码中

inil,因此错误。

试试这个:

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

相关问题