原创作者: hideto   阅读:1180次   评论:0条   更新时间:2011-05-26    
来看看使用Checkbox多选来更新的情况:
先设置routes:
# routes.rb
map.resources :tasks, :collection => { :complete => :put}


页面表单:
<% 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>
  </ul>
  <% submit_tag "Mark as Complete %>
<% end %>


controller:
# tasks_controller.rb
def complete
  Task.update_all(["completed_at=?", Time.now], :id => params[:task_ids])
end


我们使用task_ids[]作为表单参数名,传递到后台contrller的params[:task_ids]就是一个id数组
然后我们使用update_all来更新多个Task对象
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics