【问题标题】:RoutingError uninitialized constantRoutingError 未初始化常量
【发布时间】:2011-08-02 13:05:23
【问题描述】:

我想在我的应用程序中使用 token_authenticable(使用 Devise)。

使用this 答案我在文件app/controllers/users_sessions_controller.rb 中添加了class Users::SessionsController(文件位置是否正确?)。

为了在数据库中生成 authentication_token,我添加了行 current_user.reset_authentication_token! 作为 create 方法的第四行。

使用devise docimentation 中的“配置控制器”部分,我在路由中添加了行devise_for :users, :controllers => {:sessions => "users/sessions"}。

我还有文件app/views/users/session/new.html.erb。

现在,当我尝试在浏览器中登录或注销时,我得到Routing Error uninitialized constant Users。

我不知道会发生什么。我想我把控制器类命名错了,或者放错了,但不确定。

【问题讨论】:

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


    【解决方案1】:

    如果你希望你的控制器命名为Users::SessionsController,那么它需要在app/controllers/users/sessions_controller.rb中

    如果您不希望控制器嵌套文件夹,您也可以这样做

    class UserSessionsController 
    

    位于app/controllers/user_sessions_controller.rb,路线为:devise_for :users, :controllers => {:sessions => "user_sessions"}

    【讨论】:

    • 是的,没错!我昨天想通了,但是您的回答是正确且有帮助的。感谢您的解释:)
    • 两年后,你让我的夜晚变得不那么可怕了! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 2013-08-25
    • 1970-01-01
    • 2016-01-16
    • 2016-01-19
    • 2017-08-05
    • 1970-01-01
    相关资源
    最近更新 更多