单引号内的插值

时间:2013-02-16 16:30:30

标签: ruby string string-interpolation

如何在单引号内执行插值?

我试过这样的事情,但有两个问题。

string = 'text contains "#{search.query}"'
  1. 不起作用
  2. 我需要最后一个字符串,用双引号括起动态内容,如下所示:

    'text contains "candy"'
    
  3. 可能看起来很奇怪,但我正在使用的gem需要这个。

3 个答案:

答案 0 :(得分:19)

如果您不想转义双引号%{text contains "#{search.query}"},则可以使用"text contains \"#{search.query}\""

答案 1 :(得分:5)

'Hi, %{professor}, You have been invited for %{booking_type}. You may accept, reject or keep discussing more about this offer' % {professor: 'Mr. Ashaan', booking_type: 'Dinner'}

答案 2 :(得分:-2)

使用

%q(text contains "#{search.query}") 

表示使用单引号启动字符串。或者,如果您想以双引号开头使用:

%Q(text contains '#{text}')