フォームの送信とルーティングを処理する最適な方法を判断しようとしています。Rails 5ルーティングとフォームの提出
Iは標準_form.html.erbを有し、ならびにnew.html.erbとedit.html.erb - それぞれがnew
とedit
コントローラで宣言されform
、subscription = @subscription
をレンダリングアクション。
モデルはsubscription
であり、これは_form.html.erb(それはcheckout
名前空間にあります)で、私のform
要素である -
<%= form_for([:checkout, subscription]) do |f| %>
/checkout/subscriptions/new
は、新しいサブスクリプションのURLです。フォームを送信すると、/subscriptions
に送信されます。
/subscriptions/index
の表示がないため、エラーが発生してブラウザをリフレッシュすると(ユーザーが何らかの理由でこれを行うことがわかっている)、エラーメッセージが表示されるという問題があります1)。
同じものが編集に適用されます。 /checkout/subscriptions/14/edit
(例として)に行くと、すべてが素晴らしいです。しかし、フォームを提出すると、/subscriptions
に投稿されます。新しいものと同じ問題が発生します。ページを更新すると、の表示はありませんエラー。これは、Railsが新しい足場でそれを処理する方法です。
だから私の質問は以下のとおりです。
- 私は
form_for
タグに使用する必要のあるURLは何ですか? - ルーティングのために何をすべきですか?
- ページを更新するときにこのエラーを回避するにはどうすればよいですか?
それは@maxでした - ありがとうございます。私は、同じコントローラアクションに対して複数のルートを持つことは決してありませんでした。 – Steve
それは良い説明です。あなたに感謝します。乾杯! – Aashish