#ruby-on-rails #parameters #routes #member
#ruby-on-rails #параметры #маршруты #Участник
Вопрос:
Для этого маршрута:
resources :projects do
member do
resources :stakeholders
end
end
Сгенерированные маршруты:
projects_stakeholders GET /projects/projects/:id/stakeholders(.:format) {:action=>"index", :controller=>"projects/stakeholders"}
POST /projects/projects/:id/stakeholders(.:format) {:action=>"create", :controller=>"projects/stakeholders"}
new_projects_stakeholder GET /projects/projects/:id/stakeholders/new(.:format) {:action=>"new", :controller=>"projects/stakeholders"}
edit_projects_stakeholder GET /projects/projects/:id/stakeholders/:id/edit(.:format) {:action=>"edit", :controller=>"projects/stakeholders"}
projects_stakeholder GET /projects/projects/:id/stakeholders/:id(.:format) {:action=>"show", :controller=>"projects/stakeholders"}
Поскольку эти маршруты имеют два параметра a: id, если у меня есть, например, URL-адрес «проекты / 4 / заинтересованные стороны / 11»
В моем файле журнала я вижу это:
Parameters: {"id"=>"11"}
Как я могу получить доступ к моему project_id изнутри моего контроллера?
Спасибо!!!
Ответ №1:
Вам не нужен member do
блок вокруг него. Просто сделайте это, и вы должны начать видеть a project_id
в своих параметрах:
resources :projects do
resources :stakeholders
end
Комментарии:
1. Даже проще, чем я думал… Спасибо! Означает ли это, что я должен использовать «member do» только тогда, когда я хочу добавить действие к своему контроллеру?
2. Да, если вы хотите добавить действие к определенному
project
объекту, вы бы использовалиmember
route .