2013-10-06 3 views
3

На моей локальной машине, когда я аутентифицируюсь по адресу http://subdomain.myapp.dev (с использованием сервера Pow), я правильно перенаправлен на страницу индекса.Ошибки маршрутизации Heroku в приложении Rails

При входе в производственный домен http://subdomain.myapp.com (размещенный на Heroku), я также могу правильно аутентифицировать; однако Heroku не перенаправляется на индексную страницу. После отправки необходимых учетных данных я получаю уведомление «Подписано успешно», но остаюсь на странице входа.

rake routes и heroku run rake routes возвращать идентичные схемы маршрутизации. Я также перечислил содержимое моего routes.rb файла ниже

Example::Application.routes.draw do 

    devise_scope :user do 
    authenticated :user do 
     root :to => 'admin/servers#index' 
    end 

    unauthenticated :user do 
     root :to => 'devise/sessions#new' 
    end 
    end 

    resources :server_imports 
    resources :servers 

    devise_for :users 

    ActiveAdmin.routes(self) 
end 

Ниже журналов после ввода учетных данных для входа в систему:

2013-10-12T01:59:32.110046+00:00 app[web.1]: Started POST "https://stackoverflow.com/users/sign_in" 
2013-10-12T01:59:32.529842+00:00 app[web.1]: Started GET "/" 

А вот первая линия от heroku run rake routes

root GET / admin/servers#index 

Как уже упоминалось выше, после успешной аутентификации я все еще перенаправляюсь на страницу входа. Я смущен, почему эта проблема только опытные на Heroku, а не на моей локальной машине

+0

Это совершенно перепутались мой мозг вверх, потому что все Я думал, что это было покрыто. Есть две вещи, которые могут быть: вам может потребоваться добавить devize_for: пользователей выше devise_scope, а ActiveAdmin может работать по-другому на Heroku? –

+0

@RichPeck К сожалению, перемещение 'devise_for: users' над devise_scope не решило проблему – Anconia

+0

@Anconia - это перенаправление после входа в систему или вы вообще не можете войти в систему? последний случай может быть из-за проблем с файлами cookie, особенно если вы делаете что-то из ssl. – phoet

ответ

2

Почему бы не сделать что-то вроде этого:

def after_sign_in_path_for(resource) 
    admin_servers_index_path 
end 

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

+0

Как я уже говорил, я правильно маршрутизируюся после входа в систему на сервере dev; что заставляет меня скептически изменить метод 'after_sign_in_path'. – Anconia

Смежные вопросы