簡體   English   中英

如何在一個Ruby on Rails表單中編輯多個記錄?

[英]How do I edit multiple records in one Ruby on Rails form?

我正在制作一個簡單的待辦事項列表應用程序來自學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閱讀器中關於此問題的項目是來自Ryan Bates的最新軌道廣播 ,它似乎涵蓋了您的要求。

為什么不在選中項目時使用遠程函數更新數據庫,並完全刪除更新按鈕?

由於您可以在創建表單時包含每條記錄的ID,因此您希望控制器迭代您發布的項目,然后相應地查找和更新每條記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM