Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 用下一个整数值预填充Rails表单字段_Ruby On Rails_Forms_Methods - Fatal编程技术网

Ruby on rails 用下一个整数值预填充Rails表单字段

Ruby on rails 用下一个整数值预填充Rails表单字段,ruby-on-rails,forms,methods,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}" %> &

在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 %>

反过来,我得到了nil:NilClass`的错误
undefined方法
+'

这让我很困惑,因为我不明白为什么它在这里调用一个方法,而不是应用数学逻辑将1添加到前面的整数


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

尝试将
i
转换为整数:

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

尝试将
i
转换为整数:

 <%= points.label "points_#{i.to_i+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?

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?

确定了它。抢手货我应该检查一下,搞定了。抢手货我应该检查一下。请接受我的回答,因为它似乎对你有帮助。谢谢请接受我的回答,因为它似乎对你有帮助。谢谢