我正在使用omniauth-facebook gem来做一些Facebook登录的事情。该调用的工作方式是,当调用/auth/facebook时,它会执行身份验证过程。当我手动输入URL:http://localhost:3000/auth/facebook时,所有这些都工作得很好。
但是,当我只使用我的代码时,我的域被设置为使我的应用程序具有以下URL:
http://railsapps.mydomain.com/app1
http://railsapps.mydomain.com/app2
http://railsapps.mydomain.com/app3等。
现在,在我的索引页中,我有一个在.html.erb文件中写成的链接:
<%= link_to "Sign in with Facebook", "/auth/facebook", id: "sign_in" %>当我在本地运行它并单击链接时,它会正确地转到localhost:3000/auth/facebook,世界上的一切都很好。但是,当我使用相同的代码在线并单击此链接时,它将转到:http://railsapps.mydomain.com/auth/facebook (它当然不能工作,因为它应该转到railsapps.mydomain.com/app1/auth/facebook。
在这方面可以提供的任何帮助都将非常感谢。
谢谢。
发布于 2012-08-31 00:26:48
您应该能够使用以下代码:
<%= link_to "Sign in with Facebook", root_url + "auth/facebook", id: "sign_in" %>或者,如果这不起作用,请尝试request.host:
<%= link_to "Sign in with Facebook", "http://#{request.host}/auth/facebook", id: "sign_in" %>发布于 2012-08-30 21:29:20
您应该在ApplicationController中编辑default_url_options
def default_url_options
if Rails.env.production?
{:host => "railsapps.mydomain.com/app1"}
else
{}
end
endhttps://stackoverflow.com/questions/12197865
复制相似问题