Текущий подход заключается в указании маршрута с использованием devise_scope
:
devise_for :users, :controllers => { :invitations => "invitations" }
devise_scope :user do
match "/projects/:project_id/invitations/new", :to => "invitations#new", :via => "get", :as => "new_project_invitation"
end
Это означает, что я могу использовать:
Случай 1: users/invitation/new
(для приглашения нового пользователя в веб-приложение)
и
Случай 2: projects/:project_id/invitations/new
(для приглашения нового пользователя в веб-приложение + проект)
invitations_controller#new
проверяет наличие :project_id
и вызывает соответствующийповедение для случая 1 или 2.