如何指定创建路由时应该使用哪些控制器?
How to specify what controllers should be used when creating routes?
我正在创建一个 Rails 应用程序,我试图不使用 Devise 来处理与我的 User
模型相关的注册和会话,但我 运行成问题。
我想要这样的特定路线:
- http://localhost:3000/users/registrations/new
- http://localhost:3000/users/sessions/new
我尝试了几种解决方案,但 none 有效,最后尝试的是那些代码行:
get "users/registrations/new", to: "registrations#new", controller: "users/registrations", as: :new_registration
get "users/sessions/new", to: "sessions#new", controller: "users/sessions", as: :new_session
但是我得到以下错误:uninitialized constant RegistrationsController
我的 registrations_controller
和我的 sessions_controller
位于以下路径中:app/controllers/users/
有人知道我该如何处理吗?我应该使用 resources
还是 namespace
?我已经尝试过这些解决方案,但我一直面临同样的问题...
感谢您的帮助!
您使用 to: "namespace/name_of_controller#action"
,在您的情况下
get "users/registrations/new", to: "users/registrations#new", as: :new_registration
get "users/sessions/new", to: "users/sessions#new", as: :new_session
另一种更“Rails-y”的方法是使用namespace
namespace :users do
resources :registrations, only: [:new] # If you want only the new action
# ...
end
我正在创建一个 Rails 应用程序,我试图不使用 Devise 来处理与我的 User
模型相关的注册和会话,但我 运行成问题。
我想要这样的特定路线:
- http://localhost:3000/users/registrations/new
- http://localhost:3000/users/sessions/new
我尝试了几种解决方案,但 none 有效,最后尝试的是那些代码行:
get "users/registrations/new", to: "registrations#new", controller: "users/registrations", as: :new_registration
get "users/sessions/new", to: "sessions#new", controller: "users/sessions", as: :new_session
但是我得到以下错误:uninitialized constant RegistrationsController
我的 registrations_controller
和我的 sessions_controller
位于以下路径中:app/controllers/users/
有人知道我该如何处理吗?我应该使用 resources
还是 namespace
?我已经尝试过这些解决方案,但我一直面临同样的问题...
感谢您的帮助!
您使用 to: "namespace/name_of_controller#action"
,在您的情况下
get "users/registrations/new", to: "users/registrations#new", as: :new_registration
get "users/sessions/new", to: "users/sessions#new", as: :new_session
另一种更“Rails-y”的方法是使用namespace
namespace :users do
resources :registrations, only: [:new] # If you want only the new action
# ...
end