Ruby on rails 如何在Rails中保存相同类型和名称的可变数量的参数?
表单在rails中提交,rails具有可变数量的开票项目,布尔值为true或false。如何获取所有这些值并将其保存在数据库中的相应字段中: 请求参数如下:Ruby on rails 如何在Rails中保存相同类型和名称的可变数量的参数?,ruby-on-rails,ruby-on-rails-5,Ruby On Rails,Ruby On Rails 5,表单在rails中提交,rails具有可变数量的开票项目,布尔值为true或false。如何获取所有这些值并将其保存在数据库中的相应字段中: 请求参数如下: <ActionController::Parameters {"utf8"=>"✓", "authenticity_token"=>"cCQjRuaHnsIkCaffZfi6t3err4YPxrEWXSXNKy4gFmDUOtWt+T4JALddxkJWo/7giXD3dNXlvJz9tJ0EYDKKjQ=
<ActionController::Parameters {"utf8"=>"✓", "authenticity_token"=>"cCQjRuaHnsIkCaffZfi6t3err4YPxrEWXSXNKy4gFmDUOtWt+T4JALddxkJWo/7giXD3dNXlvJz9tJ0EYDKKjQ==",
"invoiced_186"=>"1", "invoiced_187"=>"1", "invoiced_188"=>"1",
"invoiced_189"=>"1", "invoiced_190"=>"1",
"commit"=>"save", "controller"=>"cader/caders", "action"=>"add_invoiced_items", "id"=>"63813"} permitted: false>
模板格式如下所示:
<%= form_with url: cader_add_invoiced_items_path(@job_checkout.id), local: true do |f| %>
<table class="table table-bordered table-striped">
<thead>
<th>Item #</th>
<th>File</th>
<th>Service</th>
<th>Price $USD</th>
<th>Invoice</th>
</thead>
<tbody>
<% @done_job.each do |done_job| %>
<tr>
<td>
<%= f.check_box :"invoiced_#{done_job.id}" %>
<label>
<%= done_job.id %>
</label>
</td>
<td><%= done_job.file_name %></td>
<td><%= done_job.service %></td>
<td>$<%= done_job.amount %></td>
<td></td>
</tr>
<% end %>
</tbody>
</table>
<%= f.submit 'save' %>
如何在服务器端管理它们,因为inoice_x字段的数字是可变的。您可以这样命名您的复选框
<checkbox name="invoiced[]" value="187">
还是这样做
<checkbox name="invoiced[187]" >
通过参数循环怎么样?例如:params.each{k,v | do|u something if k.to|u s.include?invoinced|@AkshayGoya,是的,我们可以这样做,我在想是否有其他方法可以达到相同的解决方案。是的,我可以像使用纯html一样在数组中创建它,但是有没有方法使用rails方法通过使用rails标记来使用rails方法来完成它。
<checkbox name="invoiced[187]" >
{187 = 1, 188 = 1}