为什么这个路由不能在heroku上工作但在本地工作?

时间:2011-07-12 00:02:05

标签: ruby-on-rails heroku routes

我在 Rails 3 的routes.rb文件中有以下内容:

 13   namespace :user do
 14     root :to => "users#profile"
 15   end

我在heroku上收到此错误:

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

我已经重新启动了该应用程序。

我这样做是因为我正在使用设计,这就是它在维基上所说的内容:

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

2 个答案:

答案 0 :(得分:3)

问题是Rails期望在名为Users的模块中有一个控制器,因为这是namespace :user推断的内容。也许您打算使用scope代替namespace

scope :path => "user" do
  root :to => "users#profile"
end

注意:在这种情况下,如果你只有一条路线,那么使用scope是不明智的,但是如果你有多个具有/user前缀的路线那么它会很好至。如果你只有一个,我会这样做:

get '/user', :to => "users#profile"

答案 1 :(得分:1)

Heroku环境在生产模式下运行。当您在本地运行时,您将以开发模式运行,该模式至少存在一个差异。试试这个:

RAILS_ENV=production bundle exec rails s

并查看是否发现了同样的错误。