首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails中以相对的方式使用link_to?

如何在Rails中以相对的方式使用link_to?
EN

Stack Overflow用户
提问于 2012-08-30 21:22:17
回答 2查看 1.3K关注 0票数 1

我正在使用omniauth-facebook gem来做一些Facebook登录的事情。该调用的工作方式是,当调用/auth/facebook时,它会执行身份验证过程。当我手动输入URL:http://localhost:3000/auth/facebook时,所有这些都工作得很好。

但是,当我只使用我的代码时,我的域被设置为使我的应用程序具有以下URL:

代码语言:javascript
复制
http://railsapps.mydomain.com/app1  
http://railsapps.mydomain.com/app2  
http://railsapps.mydomain.com/app3

等。

现在,在我的索引页中,我有一个在.html.erb文件中写成的链接:

代码语言:javascript
复制
<%= 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

在这方面可以提供的任何帮助都将非常感谢。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-31 00:26:48

您应该能够使用以下代码:

代码语言:javascript
复制
<%= link_to "Sign in with Facebook", root_url + "auth/facebook", id: "sign_in" %>

或者,如果这不起作用,请尝试request.host:

代码语言:javascript
复制
<%= link_to "Sign in with Facebook", "http://#{request.host}/auth/facebook", id: "sign_in" %>
票数 2
EN

Stack Overflow用户

发布于 2012-08-30 21:29:20

您应该在ApplicationController中编辑default_url_options

代码语言:javascript
复制
def default_url_options
  if Rails.env.production?
    {:host => "railsapps.mydomain.com/app1"}
  else  
    {}
  end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12197865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档