チームとプロジェクトの 2 つのモデルがあります。
ルート.rb
resources :teams do
resource :projects
end
そして2問!
1- http://guides.rubyonrails.org/routing.htmlによると、teams/:team_id/projects/:id パスを取得することを期待しています。しかし、そうではありません。
レーキルート
team_projects POST /teams/:team_id/projects(.:format) projects#create
new_team_projects GET /teams/:team_id/projects/new(.:format) projects#new
edit_team_projects GET /teams/:team_id/projects/edit(.:format) projects#edit
GET /teams/:team_id/projects(.:format) projects#show
PUT /teams/:team_id/projects(.:format) projects#update
DELETE /teams/:team_id/projects(.:format) projects#destroy
だから私はそれを機能させるためにルートに名前を付ける必要がありました
match 'teams/:team_id/projects/:id' => 'projects#show', :via => [:get], :as => :show_project
では、名前を付ける代わりに Rails ヘルパー メソッドを利用するにはどうすればよいでしょうか?
2- プロジェクトのショーアクションビューで、デバッガーは次のパラメーターをスローします。
action: show
controller: projects
team_id: '1'
これは問題ありません。しかし、「new_team_projects_path」URL をクリックすると、同じビューにリダイレクトされ、デバッガーは次のパラメーターをスローします。
controller: projects
action: show
team_id: '1'
id: new
新しいアクションにはリダイレクトされませんが、ID として「new」が使用されました。なぜ?