2013-02-16 39 views
8

如何在單引號內執行插值?單引號內的插值

我嘗試了這樣的事情,但有兩個問題。

string = 'text contains "#{search.query}"' 
  1. 它不工作
  2. 我需要的最後一個字符串有雙引號括起來,像這樣的動態內容:

    'text contains "candy"' 
    

可能看起來很奇怪,但在我正在處理的gem需要這個。

+0

GET search.query返回它的結果是雙引號括起來? – 2013-02-16 16:35:54

+2

你永遠不必使用單引號 - 創建的字符串不知道它是從單引號文字,雙引號文字,其他文字還是從其他字符串操作創建的 – 2013-02-16 16:37:59

回答

11

如果您不想跳過雙引號"text contains \"#{search.query}\"",則可以使用%{text contains "#{search.query}"}

-2

使用

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

這意味着開始與單引號的字符串。或者,如果你想開始與雙引號的使用:

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

對我來說不起作用。它實際上打印出「search.query」 – Dru 2013-02-16 16:49:20

4
'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'} 
+0

只需要注意一點,'String.format'優於'%'(根據Rubocop)。 +1好的先生,謝謝 – 2015-10-18 19:46:16