2013-02-16 20 views
8

Come è possibile eseguire l'interpolazione tra virgolette singole?Interpolazione tra virgolette singole

Ho provato qualcosa del genere ma ci sono due problemi.

string = 'text contains "#{search.query}"' 
  1. Non funziona
  2. ho bisogno la stringa finale di avere il contenuto dinamico avvolto tra virgolette doppie in questo modo:

    'text contains "candy"' 
    

sembra strano ma probabilmente la gem che sto lavorando richiede questo.

+0

get search.query per tornare è risultato avvolto tra virgolette? –

+2

Non è mai necessario utilizzare virgolette singole: la stringa creata non sa se è stata creata da un singolo letterale quotato, doppio letterale quotato, altro letterale o da altre operazioni stringa –

risposta

11

È possibile utilizzare %{text contains "#{search.query}"} se non si desidera sfuggire alle virgolette "text contains \"#{search.query}\"".

-2

Usa

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

che significa iniziare la stringa con apice singolo. Oppure, se si desidera avviare con l'utilizzo delle virgolette:

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

Non funziona per me. Stampa letteralmente "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

Solo una nota, 'String.format' è preferibile su'% '(secondo Rubocop). +1 buon signore, grazie –

Problemi correlati