【问题标题】:Devise uninitialize constant Users设计未初始化的常量用户
【发布时间】:2012-12-02 01:33:08
【问题描述】:

我意识到这已经被问过很多次了(我也阅读了 wiki)。但我仍然对如何正确保持我的路线名称相同感到困惑。

目前我的设计路线如下,使用自定义网址(例如/user/signup)。

我的模型叫User

路线:

  devise_for :users, :controllers => { :registrations => "registrations" }, :path_names => {
    :sign_up => 'signup'
  }

  devise_for :users, :path => "user", :except => "create", :path_names => { 
    :sign_in  => 'login', 
    :sign_out => 'logout', 
    :password => 'forgot-password', 
    :confirmation => 'verification', 
    :unlock   => 'unblock', 
    :sign_up  => 'signup' 
  } 

我要做的就是挂钩到创建操作,这样我就可以检查我创建的蜜罐字段是否已填写(以防止垃圾邮件)。这就是我真正想做的。

尽管/user/signup,我想保持我的网址不变。我需要做额外的步骤吗?

这就是我目前所拥有的......

/app/controllers/registrations_controller.rb

class Users::RegistrationsController < Devise::RegistrationsController

  def new
    super
  end

  def create
    super
  end

end   

我收到uninitialized constant Users

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-3 devise


【解决方案1】:

很简单,我需要将控制器放在“用户”文件夹中,这样就解决了所有问题。 (另外,路由控制器需要是:registrations =&gt; "users/registrations"

【讨论】:

  • 这解决了我的问题!谢谢!
  • 我的只有在我使用单数名词时才有效,即devise_for :users, controllers: { :registration =&gt; "users/registrations" }你知道为什么吗?
【解决方案2】:

我遇到了同样的错误。 就我而言,它位于routes.rb

曾是:devise_for :users,controllers: {sessions: "users/sessions"}

结果:uninitialized constant Users

直到{sessions: "users/sessions"} 我才知道发生了什么 在我的情况下,它应该是 user/sessions 没有“s”

【讨论】:

  • 你对一个 3 年前死掉的项目发表评论很有趣
【解决方案3】:

您无需将控制器命名为 Users::RegistrationsController,只需将其命名为 RegistrationsController,以保持从 Devise::RegistrationsController 的继承。

我不知道第一个devise_for 的用途,但您需要将:controllers =&gt; { :registrations =&gt; "registrations" } 复制/移动到第二个devise_for

【讨论】:

    【解决方案4】:

    devise (4.7.3)rails (6.0.3.3) 上,正确的控制器是Session 而不是Sessions

    您需要将此添加到您的config/route.rb

    devise_for :users, controllers: { session: 'users/sessions' }
    

    【讨论】:

    • 谢谢,解决了我的问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多