Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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_Checkbox - Fatal编程技术网

Ruby on rails 使用复选框更新数据库-rails

Ruby on rails 使用复选框更新数据库-rails,ruby-on-rails,checkbox,Ruby On Rails,Checkbox,所以我有一个与活动关联的用户模型,活动与一个完整的模型关联 我试图做的是在单击复选框时更新活动是否已完成 以下是我的看法: <% @user.completeds.each do |task| %> <tr> <td><%= task.activity.name %></td> <td><%= task.activity.type.name %></td>

所以我有一个与活动关联的用户模型,活动与一个完整的模型关联

我试图做的是在单击复选框时更新活动是否已完成

以下是我的看法:

  <% @user.completeds.each do |task| %>
    <tr>
      <td><%= task.activity.name %></td>
      <td><%= task.activity.type.name %></td>
      <td><%= task.activity.points %></td>

      <td><%= check_box_tag 'finished', '1', task.finished %></td>
    </tr>
<% end %>

这一切都很好,并显示了活动是否“完成”,但我很难弄清楚如何使用复选框更新数据库。虽然我希望它更新时,你点击复选框,我同意有一个保存按钮,以保存所有在一次。哪一个更简单可能对我来说是最好的,因为我正在学习rails

谢谢你的帮助

编辑:


为了澄清我的问题,我上面的代码用于正确显示数据,但我不知道如何将其转换为表单,以便保存对复选框值的任何更改。

最简单的解决方案是使用表单和保存按钮。如果查看,您可以看到一个示例:

<%= check_box_tag(:pet_dog) %>
<%= label_tag(:pet_dog, "I own a dog") %>

您可能希望使用form_来更新对象,而不是form_标记。请参阅文档


:

编辑: 要更新倍数,请尝试以下操作:

<% form_tag edit_multiple_products_path do %>
<table>
  <tbody>
    <% @user.completeds.each do |task| %>
      <tr>
        <td><%= task.activity.name %></td>
        <td><%= task.activity.type.name %></td>
        <td><%= task.activity.points %></td>
        <td><%= check_box_tag 'finished', '1', task.finished %></td>
      </tr>
    <% end %>
  </tbody>
</table>
<%= submit_tag "Update Tasks" %>
<% end %>


除了别忘了做上面提到的其他事情。

最简单的解决方案是使用表单和保存按钮。如果查看,您可以看到一个示例:

<%= check_box_tag(:pet_dog) %>
<%= label_tag(:pet_dog, "I own a dog") %>

您可能希望使用form_来更新对象,而不是form_标记。请参阅文档


:

编辑: 要更新倍数,请尝试以下操作:

<% form_tag edit_multiple_products_path do %>
<table>
  <tbody>
    <% @user.completeds.each do |task| %>
      <tr>
        <td><%= task.activity.name %></td>
        <td><%= task.activity.type.name %></td>
        <td><%= task.activity.points %></td>
        <td><%= check_box_tag 'finished', '1', task.finished %></td>
      </tr>
    <% end %>
  </tbody>
</table>
<%= submit_tag "Update Tasks" %>
<% end %>


除了别忘了做上面提到的其他事情。

有没有办法用一个保存/提交按钮就可以做到这一点?是的!看看这个例子RailsCast:基本上,你仍然想要一个像我例子中那样的表单,但是你需要一个唯一的路径来更新倍数。好吧,这让我接近了,我想,但我想我不是很清楚。我只是尝试根据检查的内容将数据库中的“finished”值更新为1或0。我不想更新所有其他列。我发布的示例代码只更新一列。有没有办法用一个保存/提交按钮来实现这一点?是的!看看这个例子RailsCast:基本上,你仍然想要一个像我例子中那样的表单,但是你需要一个唯一的路径来更新倍数。好吧,这让我接近了,我想,但我想我不是很清楚。我只是尝试根据检查的内容将数据库中的“finished”值更新为1或0。我没有试图更新所有其他列。我发布的示例代码只更新一列。