我想確定處理表單提交和路由的最佳方式。Rails 5路由和表單提交
我有標準_form.html.erb,以及new.html.erb和edit.html.erb - 每個渲染form
,subscription = @subscription
,其在new
和edit
控制器宣告行動。
型號爲subscription
,這是我form
元素_form.html.erb(它在checkout
命名空間) -
<%= form_for([:checkout, subscription]) do |f| %>
/checkout/subscriptions/new
是一個新的訂閱的URL。當您提交表格時,它將張貼到/subscriptions
。
問題是,如果有錯誤,並且刷新瀏覽器(我知道用戶會因爲某種原因這樣做),您會收到一條錯誤消息,因爲沒有/subscriptions/index
的視圖(我不需要一)。
同樣適用於編輯。如果你去(作爲例子)/checkout/subscriptions/14/edit
,一切都很好。但是,如果您提交表單,則會發布到/subscriptions
- 與新版本相同的問題 - 如果刷新頁面,您會收到沒有視圖錯誤。這是Rails用一個新的腳手架處理它的方式。
所以我的問題是:
- 有什麼網址我應該在
form_for
標籤使用? - 我應該怎麼做路由?
- 以及如何在刷新頁面時避免此錯誤?
這樣做@max - 謝謝。我從來沒有想過爲同一個控制器操作有多條路線。 – Steve
這是一個很好的解釋。讚賞你。乾杯! – Aashish