【发布时间】:2013-10-13 08:29:17
【问题描述】:
在我的本地机器上,当我在http://subdomain.myapp.dev 进行身份验证时(使用 Pow 服务器),我被正确地重定向到索引页面。
当登录生产域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 "/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