通常のアクションセット(インデックス、表示、新規、編集など)を備えた標準のユーザーコントローラーがあり、「プロファイル」という名前の新しいアクションを追加しようとしています。次のコードを追加しました。
def profile
@user = User.find(session[:user_id])
end
アクションの新しいビュー(app / views / users / profile.html.erb)も作成しましたが、そのページを表示しようとするとエラーが発生します。
UsersController#showのActiveRecord ::RecordNotFound ID=profileのユーザーが見つかりませんでした ..。
どうやらそれはショーアクションを打っています。これを機能させるには、ルートに何かを追加する必要があると思いますが、何がわかりません。これまでのところ、2つのデフォルトルートとコメントを外したmap.root行があります。
map.root :controller => "home"
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
だから本当に私は2つの質問があります:
- 新しいアクションを有効にするには、何をする必要がありますか?
- なぜ既存のルートはこの状況をカバーしないのですか?コントローラとアクションだけで構成される他のURLは問題なく機能します(例:http:// localhost:3000 / users / new)。なぜこれではないのですか?:controller = users、:action = profile、:id = nilと評価するだけではいけませんか?