我得到了一個很多領域的大表格。有多種select_tag
字段:Rails:如何獲得被拒絕的提交表單的字段?
-(0..2).to_a.each do |id|
= select_tag('product[category_ids][]', options_from_collection_for_select(Category.all, :id, :name), :prompt=> '-- Select a Category --')
問題:如果窗體時拒絕提交的新動作已經不記得是什麼select_tags以前選擇的值。
提交後每隔一個字段會重新出現(如:title
,:description
),但categories_id
已丟失。
可能的解決方案:我們必須在options_from_collection_for_select
方法中添加默認選擇的select_tag
。如何獲得category_id
的價值?我們如何訪問以前表單的字段?
options_from_collection_for_select(Category.ordered, :id, :name, category_id)
您是否嘗試過你的 「可能的解決方案」?它有用嗎?如果是這樣,這應該以Q&A格式發佈。 –
這不完全是一個解決方案,因爲有一個未知變量 - 'category_id'。我的問題是:「我怎麼能得到那個未知的變量?」。 – fiction
我會使用ajax並使用json或FormData提交表單。如果失敗,則使用該響應來突出顯示無效輸入(您永遠不會離開頁面,以便保留用戶輸入)。如果它成功返回位置標題中的url並使用'pushState'或'window.location'來重定向。表單仍然應該提交給沒有js的用戶 - 他們在失敗時不會看到原始值。 – firien