2013-02-16 38 views
8

Làm thế nào tôi có thể thực hiện nội suy trong dấu nháy đơn?Nội suy trong dấu nháy đơn

Tôi đã thử một cái gì đó như thế này nhưng có hai vấn đề.

string = 'text contains "#{search.query}"' 
  1. Nó không làm việc
  2. Tôi cần chuỗi cuối cùng để có nội dung động được bọc trong dấu ngoặc kép như vậy:

    'text contains "candy"' 
    

lẽ có vẻ lạ nhưng gem mà tôi đang làm việc với yêu cầu này.

+0

get search.query trở lại nó kết quả bọc trong dấu ngoặc kép? –

+2

Bạn không bao giờ phải sử dụng dấu nháy đơn - chuỗi được tạo không biết nếu nó được tạo từ một chữ được trích dẫn đơn, chữ được trích dẫn kép, chữ khác hoặc từ các hoạt động chuỗi khác –

Trả lời

11

Bạn có thể sử dụng %{text contains "#{search.query}"} nếu bạn không muốn thoát khỏi dấu ngoặc kép "text contains \"#{search.query}\"".

-2

Sử dụng

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

có nghĩa là bắt đầu chuỗi với dấu nháy đơn. Hoặc nếu bạn muốn bắt đầu với việc sử dụng dấu nháy kép:

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

Không hoạt động đối với tôi. Nó nghĩa đen in ra "search.query" – Dru

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

Chỉ cần một lưu ý, 'String.format' là thích hợp hơn'% '(theo Rubocop). 1 tốt sir, cảm ơn –

Các vấn đề liên quan