• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:railsのscaffoldにて作成したプロジェクトの)

railsのscaffoldで生成したプロジェクトでEditリンクの値がどこで設定されているか

このQ&Aのポイント
  • railsのscaffoldで生成したプロジェクトで、ViewsのEditのlink_toの第二引数の値がどこで設定されているかわかりません。
  • 生成されたHTMLのEditリンクのhref属性の値は、edit_student_path(student)となっています。
  • railsのバージョンは2.3.5で、コントローラとビューを一階層掘り下げる際に発生した問題です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

edit_student_pathについては、railsのルーティングについて知る必要があります。 http://guides.rubyonrails.org/routing.html >>例えば、モデル名を"student"にてscaffoldを実行すると config/routes.rbに下記ルーティングが自動的に定義されます。 map.resources :students これによりstudentに対するRESTfulルートが使えるようになります。 (詳細は、上記ページ内「3.3 URLs and Paths」に記載されています。) controllers/hoge/students_controller.rb のように階層を下げたい場合は、上記ルーティングを一部変更する必要があります。 #map.resources :students ===>これは削除 #下記追加 map.namespace(:hoge) do |hoge| hoge.resources :students end ルーティングを追加した場合は、「rake routes」でルーティングの確認を行ってください。 おそらく下記3つのルーティングが定義されます。 new_hoge_student edit_hoge_student hoge_student 仮にedit linkは、下記のように訂正する必要があります。 <%= link_to 'Edit', edit_hoge_student_path(student) %>

kossy708
質問者

お礼

早速のご回答、ありがとうございます!!!m(_ _)m 解決しました。 実は、二階層さげようとしていまして、そこでのルーティングの設定が間違っていました。 map.namespace :hoge1 do |hoge1| hoge1.namespace :hoge2 do |hoge2| hoge2.resources :students end end このように設定したらうまくいきました。 ありがとうございました。