我想用一個表單來創建一個管理頁面......其中有複選框表示管理員選擇了哪個圖像,然後是三個提交按鈕:批准,編輯,刪除。3個提交按鈕的導軌形式
form_tag是做這件事的最好方法嗎?如果沒有,那麼如果我只是使用簡單的按鈕,我怎樣才能連接它們從選定的複選框收集數據?
謝謝...
我想用一個表單來創建一個管理頁面......其中有複選框表示管理員選擇了哪個圖像,然後是三個提交按鈕:批准,編輯,刪除。3個提交按鈕的導軌形式
form_tag是做這件事的最好方法嗎?如果沒有,那麼如果我只是使用簡單的按鈕,我怎樣才能連接它們從選定的複選框收集數據?
謝謝...
一種方法是你可以創建一個帶有三個按鈕的窗體。如果您使用的是form_tag,則可以通過執行submit_tag三次來創建三個按鈕。 submit_tags使用相同的:name參數,但使用不同的值。處理表單提交時,檢查他們點擊了哪個按鈕,然後重新路由到適當的操作。
這樣做可以避免必須使用js共享三種不同形式的複選框,依此類推。
有同樣的問題,我試圖使用form_for,它似乎工作。我只是添加了一個提交按鈕來執行其他操作。
= form_for @request do |f|
= render 'shared/error_messages', object: f.object
= f.label :status
= f.text_field :status
...some more fields
= f.submit "Save changes", class: "btn btn-large btn-primary" <--- This is initial button
= f.submit "Accept", name: 'accept', class: "btn btn-large btn-primary"
= f.submit "Reroute", name: 'reroute', class: "btn btn-large btn-primary"
= f.submit "Solve", name: 'solve', class: "btn btn-large btn-primary"
然後在控制器,你檢查哪個按鈕被按下:
if !params[:accept].nil?
if !params[:reroute].nil?
if !params[:solve].nil?
最初的按鈕,你可以在渲染頁面的源代碼發現的名稱。這對我來說是「承諾」。