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

cor*_*ded 3 heroku devise ruby-on-rails-3.1

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

ActionController::RoutingError (uninitialized constant User::UsersController)
Run Code Online (Sandbox Code Playgroud)

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

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

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

有帮助吗?

编辑

这是我的路线:

root :to => "home#index"

devise_for :users

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

resources :users, :only => :show
Run Code Online (Sandbox Code Playgroud)

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

ian*_*dan 6

我发现您不需要在用户登录时删除默认根目录.因此,请替换该namespace呼叫并使用以下内容:

match 'users' => 'users#welcome', :as => 'user_root'
Run Code Online (Sandbox Code Playgroud)

这样你仍然可以有两个"主页"页面.它对我有用.

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