【问题标题】:Heroku routing errors in Rails appRails 应用程序中的 Heroku 路由错误
【发布时间】:2013-10-13 08:29:17
【问题描述】:

在我的本地机器上,当我在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 而不是我的本地机器上

【问题讨论】:

  • 这完全把我的脑子弄乱了,因为我想到的一切都被覆盖了。可能有两件事——您可能需要将 devise_for :users 放在 devise_scope 之上,而 ActiveAdmin 在 Heroku 上的工作方式可能不同?
  • @RichPeck 不幸的是,将 devise_for :users 移动到 devise_scope 上方并没有解决问题
  • @Anconia 是登录后的重定向问题还是您根本无法登录?最后一种情况可能是由于 cookie 问题,特别是如果你做一些 ssl 的东西。
  • @phoet 我可以登录应用程序;登录后的重定向是问题
  • @Anconia :尝试在我的回答 here 中设计路线,让我知道尝试后会发生什么。

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


【解决方案1】:

为什么不这样做:

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

【讨论】:

  • 正如我所提到的,我在登录开发服务器后得到了正确的路由;这让我对更改 after_sign_in_path 方法持怀疑态度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
  • 2014-11-19
  • 2014-03-12
  • 2015-10-31
  • 2016-05-01
  • 1970-01-01
相关资源
最近更新 更多