我正在尝试使用ajax和jquery实现devise
身份验证。我使用:
rails g devise:controllers users
它创建了所需的所有必要控制器文件,例如sessions
,registration
。
这些是控制器文件:
class Users::SessionsController < Devise::SessionsController
respond_to :html, :json
end
class Users::RegistrationsController < Devise::RegistrationsController
respond_to :html, :json
end
routes.rb 文件如下所示:
devise_for :users, controllers: {sessions: 'sessions', registrations: 'registrations'}
只要我填写注册表并按回车,我就会:
Routing Error
uninitialized constant RegistrationsController
答案 0 :(得分:4)
您错过了路线中的命名空间
devise_for :users, controllers: {
sessions: 'users/sessions',
registrations: 'users/registrations'}
答案 1 :(得分:1)
从
更改routes.rb devise_for :users, controllers: {sessions: 'sessions', registrations: 'registrations'}
到
devise_for :users, controllers: {sessions: 'users/sessions', registrations: 'users/registrations'}
答案 2 :(得分:0)
在处理 Rails 6应用程序时,我遇到了这个问题。
我的模型名为application_registration.rb
我的视图目录为app/views/application_registrations
我的路线是:resources :application_registrations, only: [:create, :update, :new, :edit]
但是它抛出了一个错误:
uninitialized constant ApplicationRegistrationsController Did you mean ApplicationController
这是我修复的方式:
问题出在我的控制器的命名上。
我已将其命名为application_registrations.rb
我要做的就是将其重命名为application_registrations_controller.rb
仅此而已
我希望这会有所帮助