2013-02-16 3 views
8

작은 따옴표 내에서 보간법을 수행하려면 어떻게해야합니까?작은 따옴표 내 보간

나는 이런 식으로 시도했지만 두 가지 문제가 있습니다.

string = 'text contains "#{search.query}"' 
  1. 난과 같이 큰 따옴표로 감싸 동적 콘텐츠를 가지고 최종 문자열을 필요가 작동하지 않습니다

    'text contains "candy"' 
    

아마 이상한 것 같다하지만, 내가 함께 일하는 gem은 이것을 요구합니다.

+0

가져 오기 search.query는이 결과는 큰 따옴표로 싸여 돌아갑니다? –

+2

작은 따옴표를 사용할 필요가 없습니다. 생성 된 문자열은 작은 따옴표 붙은 리터럴, 큰 따옴표 붙은 리터럴, 다른 리터럴 또는 다른 문자열 작업으로 작성되었는지 알 수 없습니다. –

답변

11

큰 따옴표 "text contains \"#{search.query}\""을 이스케이프하지 않으려면 %{text contains "#{search.query}"}을 사용할 수 있습니다.

-2

작은 따옴표로 문자열을 시작하는 의미를 사용

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

. 당신이 따옴표를 사용하여 시작하려는 경우 또는 :

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

나를 위해 작동하지 않습니다. 그것은 문자 그대로 "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

단지 '% .'보다는'String.format'이 더 좋습니다 (Rubocop에 따르면). +1 선생님, 감사합니다. –