为什么我不能在Rails中链接一个字符串?

时间:2015-11-11 23:10:29

标签: ruby-on-rails ruby concatenation

Ruby:2.2.3

Rails:4.2.4

OS:OSX 10.11.2 Beta

我正在学习Rails,当我像这样gunicorn trescloud_landing.wsgi:application --daemon --bind=127.0.0.1:8888 --pid=/opt/webapps/pid/landing-pages.pid --access-logfile=/opt/webapps/log/landing-pages.access.log --error-logfile=/opt/webapps/log/landing-pages.error.log时:

link_to

如果link.url类似于" Google.com"它没有链接到外部网站。相反,它根本没有使用变量,并创建了一个静态链接,始终创建一个锚标记,如下所示:

<% link_to 'Visit Url', 'http://#{@link.url} %>

将字符串与变量分开,这样可以正确链接到外部站点:

<a href="http://#{@link.url}">Visit Url</a> 

那为什么第一个不起作用?如果link.url是&#34; google.com&#34;,则不应该将第一个<% link_to 'Visit Url', 'http://' + @link.url %> 正确地连接到&#34; http://google.com&#34;?

1 个答案:

答案 0 :(得分:3)

只需使用"双引号而不是'单引号。单引号内的任何内容都不会被插值。

所以:

@link = "www.google.com"
s1 = 'http://#{@link}'
s2 = "http://#{@link}"

puts s1 # prints http://#{@link}
puts s2 # prints http://www.google.com