如何在一个Ruby on Rails的形式编辑多个记录?
-
12-09-2019 - |
题
我做一个简单的待办事项列表应用自学Ruby on Rails的,但我碰到的一个问题。我有一个简单的表格,列出了一个复选框他们的左待办事项,并在底部的“更新”按钮,像这样:
[]做的菜,点击 []倒垃圾结果 []接管世界点击 (更新)
每个待办事项产品与“已完成”布尔型字段的数据库的单独记录。我希望表单提交检查一次性项目ID的列表中,我可以每个项目的“完成”字段设置为true,这将隐藏他们从视图的操作。
我知道如何使引用多个模型形式,但不是一个引用相同模型的多个记录。任何提示?
谢谢!
解决方案
Railscasts是你的朋友!
http://railscasts.com/episodes/52-update-through-checkboxes
这真的很简单:
# routes.rb
map.resources :tasks, :collection => { :complete => :put }
# tasks_controller.rb
def complete
Task.update_all(["completed_at=?", Time.now], :id => params[:task_ids])
end
# views\tasks\complete.html.erb
<% form_tag complete_tasks_path, :method => :put do %>
<ul>
<% for task in @incomplete_tasks %>
<li>
<%= check_box_tag "task_ids[]", task.id %>
<%= task.name %>
</li>
<% end %>
</ul>
<%= submit_tag "Mark as Complete" %>
<% end %>
其他提示
哇。这是一些时间。该项目的权利之前,我的RSS阅读器这个问题的最新 railscast 从瑞安Bates和它似乎掩盖你问什么。
为什么不使用遥控功能,以更新数据库当一个项目被选中,并获得完全摆脱了更新按钮?
由于您可以包括每条记录的ID,当你创建你的表格,你会希望控制器通过迭代的项目在您发布,然后找到并相应地更新每个这样的记录。
不隶属于 StackOverflow