RailsTutorialガイドに従おうとしていますが、代わりに独自のアプリケーションを実行しています。セクション 7 のフォームに問題があります。
私のコントローラー:
def update
d = Deck.find(params[:id])
d.title = params[:deck][:title]
d.slug = params[:deck][:slug]
d.category = params[:deck][:category]
if d.save
redirect_to deck_path(d), notice: "Deck saved successfully"
else
render :edit
end
end
良いコードとはとてもかけ離れていることは承知していますが、後でリファクタリングします (提案があれば、私は完全に耳を傾けますが、Rails 3 を使用しているので、Rails 4 の強力なパラメーターは出ていると思います)。
問題は、d.save
(検証のために) が機能しない場合render :edit
です。
現在、無効なデータを入力すると、show
アクションにリダイレクトしようとし、表示するデータがないためにクラッシュします。の上
に追加すると機能しますが、URLは引き続きアクションです。@deck = d
render
show
検証に失敗した場合、同じ URL にとどまり、エラー メッセージを表示するにはどうすればよいですか? 「URL を変更して同じページを表示する」という動作は有効と見なされますか?
ありがとう !
残りのコードに興味がある場合は、ここにあります: https://github.com/cosmo0/TeachMTG/tree/remodel-decks