Rails app中的Heroku路由错误

时间:2013-10-06 20:12:21

标签: ruby-on-rails ruby-on-rails-3 heroku devise activeadmin

在我的本地计算机上,当我在http://subdomain.myapp.dev(使用Pow服务器)进行身份验证时,我已正确地重定向到索引页面。

登录到生产域http://subdomain.myapp.com(在Heroku上托管)时,我也能够正确地进行身份验证;但是,Heroku没有重定向到索引页面。提交必要的凭据后,我收到“已成功登录”通知,但仍保留在登录页面上。

rake routesheroku 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 "/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而不是在我的本地机器上体验

1 个答案:

答案 0 :(得分: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