我正在尝试显示某人的个人资料链接到他们的社交媒体资料。我目前的代码是
<p>
<strong>Linkedin:</strong>
<%= link_to @person.linkedin, @person.linkedin %>
</p>
它可以工作,链接确实加载,但它转到localhost:3000 / user / linkedin.com / in / user而不是linkedin.com/in/username
谢谢!
答案 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在本地路由。