【问题标题】:Why can't I concatenate a string inside of a link in Rails? [duplicate]为什么我不能在 Rails 的链接中连接字符串? [复制]
【发布时间】:2015-11-12 07:15:39
【问题描述】:

红宝石:2.2.3

导轨:4.2.4

操作系统:OSX 10.11.2 测试版

我正在学习 Rails,当我像这样制作 link_to 时:

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

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

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

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

<% link_to 'Visit Url', 'http://' + @link.url %>

那么为什么第一个不起作用?如果link.url 是“google.com”,第一个link_to 不应该正确连接到“http://google.com”吗?

【问题讨论】:

    标签: ruby-on-rails ruby concatenation


    【解决方案1】:

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

    所以:

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

    【讨论】:

    • 好的,谢谢。我从来不知道单引号和双引号有区别。
    猜你喜欢
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    相关资源
    最近更新 更多