路由错误未初始化的常量RegistrationsController

时间:2017-05-08 10:38:05

标签: ruby-on-rails devise

我正在尝试使用ajax和jquery实现devise身份验证。我使用:

生成了设计控制器

rails g devise:controllers users它创建了所需的所有必要控制器文件,例如sessionsregistration

这些是控制器文件:

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

3 个答案:

答案 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

仅此而已

我希望这会有所帮助