我正在尝试在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支持人员也询问了我的路线,但为什么只在生产中发生?此外,我认为路线没有任何问题......是吗?
答案 0 :(得分:6)
我发现您无需删除用户登录时的默认root。因此,请替换namespace
电话并使用以下内容:
match 'users' => 'users#welcome', :as => 'user_root'
这样你仍然可以有两个“主页”。它对我有用。
答案 1 :(得分:1)
这是你的问题:
namespace :user do
root :to => "users#welcome"
end
你可以删除吗?
答案 2 :(得分:0)
我得到了同样的错误。错误只能在Heroku中重现,而不是在本地。我意识到,当我将资源添加到路径并推送它时,所有生成的脚手架仍然在本地。一旦我将所有生成的东西添加到git并推送,就可以在Heroku上正常工作。