heroku中的ActionController :: RoutingError(未初始化的常量User :: UsersController)(但一切都在本地工作)

时间:2011-06-30 05:51:51

标签: heroku devise ruby-on-rails-3.1

我正在尝试在heroku中运行我的应用程序,但在尝试注册甚至访问devise的登录页面时出现此错误:

ActionController::RoutingError (uninitialized constant User::UsersController)

这是我在heroku中错过的设计错误或服务器设置吗?

顺便说一下,我在雪松堆栈中运行一个rails3.1应用程序并加载索引页面是好的,但如果我尝试登录或注册,它就会被打击。

注册表单显示,但是当我提交时,那就是它被吹响的时候。我检查了日志,它对控制器进行了POST操作,但是获取结果页面(当我想重定向时)会将其炸毁。

任何帮助?

修改

这是我的路线:

root :to => "home#index"

devise_for :users

namespace :user do
  root :to => "users#welcome"
end

resources :users, :only => :show

一个heroku支持人员也询问了我的路线,但为什么只在生产中发生?此外,我认为路线没有任何问题......是吗?

3 个答案:

答案 0 :(得分:6)

我发现您无需删除用户登录时的默认root。因此,请替换namespace电话并使用以下内容:

match 'users' => 'users#welcome', :as => 'user_root'

这样你仍然可以有两个“主页”。它对我有用。

https://github.com/plataformatec/devise/wiki/How-To%3a-Redirect-to-a-specific-page-on-successful-sign-in

答案 1 :(得分:1)

这是你的问题:

namespace :user do
  root :to => "users#welcome"
end

你可以删除吗?

答案 2 :(得分:0)

我得到了同样的错误。错误只能在Heroku中重现,而不是在本地。我意识到,当我将资源添加到路径并推送它时,所有生成的脚手架仍然在本地。一旦我将所有生成的东西添加到git并推送,就可以在Heroku上正常工作。