почему эта маршрутизация не работает на героку, но работает локально? - PullRequest
2 голосов
/ 12 июля 2011

У меня есть следующее в моем файле rout.rb для Rails 3 :

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

Я получаю эту ошибку на heroku:

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

Я ужеперезапустил приложение.

Я делаю это, потому что я использую devise, и это то, что говорится в вики:

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

Ответы [ 2 ]

3 голосов
/ 12 июля 2011

Проблема в том, что Rails ожидает, что в модуле с именем Users будет контроллер, потому что это namespace :user. Возможно, вы хотели использовать scope вместо namespace?

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

Примечание: в этой ситуации, если у вас есть только один маршрут, было бы неразумно использовать scope, но если у вас есть несколько маршрутов с префиксом /user, тогда было бы хорошо. Если бы у вас был только один, я бы сделал это вместо:

get '/user', :to => "users#profile"
1 голос
/ 12 июля 2011

Среды Heroku работают в производственном режиме.Когда вы работаете локально, вы работаете в режиме разработки, который учитывает как минимум одну разницу.Попробуйте вместо этого:

RAILS_ENV=production bundle exec rails s

и посмотрите, заметили ли вы ту же ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...