如何修复rails 4超链接?

时间:2015-08-18 17:33:28

标签: ruby-on-rails

我正在尝试显示某人的个人资料链接到他们的社交媒体资料。我目前的代码是

<p>
<strong>Linkedin:</strong>
<%= link_to @person.linkedin, @person.linkedin %>
</p>

它可以工作,链接确实加载,但它转到localhost:3000 / user / linkedin.com / in / user而不是linkedin.com/in/username

谢谢!

2 个答案:

答案 0 :(得分:5)

您需要添加以确保linkedin超链接具有协议(http,https等)。

任何没有协议的链接都被认为是相对路径,这就是超链接被附加到您的网站网址的原因。

解决方案是在数据库中每个人的linkedin超链接的开头手动添加“http://”字符串。在那之后你的代码应该可以正常工作。

编辑或者您可以像这样动态更改它(其他答案将无效,因为看起来@person.linkedin包含整个超链接而不仅仅是linkedin用户)< / p>

<%= link_to @person.linkedin, "https://#{@person.linkedin}" %>

答案 1 :(得分:1)

Rails链接帮助程序遵循以下格式:

link_to(name = nil, options = nil, html_options = nil, &block)

第二个@ person.linkedin路径是由配置文件夹中的路由文件确定的本地路径。如果您需要的链接遵循某种格式,您可以执行类似

的操作
<%= link_to "LinkTextHere", "http://www.linkedin.com/#{@person}/profile" %>

如果您根据.linkedin值给出我需要的确切结果以及您想要的内容,我可以更详细地回答。另外,输入&#34; rake routes&#34;在您的控制台中将显示您当前拥有的所有路径,并可以帮助解决问题,例如为什么@ person.linkedin在本地路由。