我有一個圍繞項目列表的表單。我想檢查列表上的單選按鈕,然後點擊「提交」後,進入所選項目的「編輯」頁面。Ruby on Rails:表單和單選按鈕問題
的問題是,如果我寫的東西像
<%= form_tag edit_item_path %>
但Rails的抱怨,我沒有提供一個適當的id
,而這又是被我的單選按鈕設置爲以下幾點:
<%= radio_button 'item', 'id', item.id %>
所以 - 我將如何發送形式有選擇的ID給定的動作?
我有一個圍繞項目列表的表單。我想檢查列表上的單選按鈕,然後點擊「提交」後,進入所選項目的「編輯」頁面。Ruby on Rails:表單和單選按鈕問題
的問題是,如果我寫的東西像
<%= form_tag edit_item_path %>
但Rails的抱怨,我沒有提供一個適當的id
,而這又是被我的單選按鈕設置爲以下幾點:
<%= radio_button 'item', 'id', item.id %>
所以 - 我將如何發送形式有選擇的ID給定的動作?
做它,你描述是行不通的方式,因爲edit_item_path默認REST風格的路徑定義是一個GET請求。您正在嘗試使其成爲POST請求。如果你想堅持RESTful的做事方式,我會建議簡單地循環你的項目,並提供編輯鏈接,因爲你打算一次編輯一個。否則,如果您希望在單選按鈕的表單中執行操作,則必須定義新的路由。如果你是,比你想補充像這樣的東西你的config/routes.rb文件:(假設你使用的軌道2.3.x版本)
map.resources :items, :member =>{:edit_radio_form => :post}
比你的形式是這樣的: <%= form_tag edit_radio_form_item_path do |form| %>
,它應該工作,但由於多種原因,這不是正確的做事方式,其中最令人討厭的方式是,您不會在編輯頁面上獲得完整的URL,因爲您通過POST請求獲得了完整的URL,所以如果刷新頁面,你的物品ID參數將消失,並會產生一個錯誤。