è necessario utilizzare "\n"
non '\n'
nel vostro gsub. Le diverse virgolette si comportano diversamente.
Le virgolette doppie "
consentono l'espansione dei caratteri e l'interpolazione delle espressioni, ad es. ti permettono di usare caratteri di controllo di escape come \n
per rappresentare il loro vero valore, in questo caso, newline, e consentire l'uso di #{expression}
in modo da poter tessere variabili e, più o meno, qualsiasi espressione rubino che ti piace nel testo.
Mentre d'altra parte, le virgolette singole '
trattano la stringa letteralmente, quindi non c'è espansione, sostituzione, interpolazione o cosa hai.
In questo caso particolare, è meglio utilizzare il metodo .delete
o .tr
String per eliminare i newlines.
See here for more info
sintassi corretta sarebbe davvero essere.gsub (/ \ n /, "") –
@David è corretto. Tuttavia, sentivo che era importante mostrare che le virgolette fanno la differenza, dal momento che ciò avvantaggerebbe Ben a questo punto. Intendiamoci, David, probabilmente è più una questione di stile che "corretta". Personalmente ritengo che 'tr' sia una scelta migliore per questo compito, ma come ho detto, ho pensato che fosse meglio sottolineare la differenza tra virgolette singole e doppie quando ho risposto. – ocodo