レンダリング呼び出しのナビゲーションまたは URL 部分がどこで解決されるかを知るために、rails3.2 ソース コードで確認する必要があるメソッドはありますか? その理由は、URLが次の形式の小さなアプリを持っているからです
www.example.com/bob/edit
上記のルートは、編集フォームをレンダリングすることを示唆しています。編集: link_to ヘルパーの応答を変更することで、このルートに到達できました。
def update
#when validation passes
redirect_to @user
#when validation fails
respond_to do |format|
format.html {render :action => "edit"}
end
end
ここで問題になるのは、users_controller の更新アクションへの送信時に検証エラーが発生した場合、URL が次のようになることです。
www.example.com/users/bob/edit
config/routes.rb
get "users/new", to: => "users#new"
resources :users
ご覧のとおり、ルートで興味深いことは何も起きていません。
models/user.rb 内
def to_param
"#{name}"
end
ビュー/edit.html.erbで
form_for(@user) do |f|
end
観察:ここで、フォームが新たにレンダリングされると、フォームの「アクション」は「users/bob」を指しますが、フォームが再レンダリングされると、検証エラーの「cos」が発生し、フォームのアクションは不思議なことに「users/」に変更されます。 user.rb モデルの to_param を削除すると正常に動作します
それほど大したことではありませんが、レンダリング呼び出しで生成された URL をオーバーライドする必要がある場合、どこを変更すればよいか考えていました?????
探索するための提案や指針は大歓迎です....