Как я выхожу из # {из строковой интерполяции

Используйте эти unless атрибут.


, Если Вы не хотите, чтобы "тест" работал, всего

муравей-ddont.run.tests=true

, Это должно быть не определено, если Вы хотите, чтобы тесты работали. Муравей просто проверяет на то, определяется ли он вообще. Кроме того, существует if атрибут, который делает обратное.

Вот статья об обоих.

11
задан Rosa Richter 17 November 2015 в 05:02
поделиться

3 ответа

Я думаю, что обратная косая черта - это просто Ruby, который помогает использовать только irb.

>> a,b = 1,2        #=> [1, 2]
>> s = "#{a} \#{b}" #=> "1 \#{b}"
>> puts s           #=> 1 #{b}
>> s.size           #=> 6

Так что я думаю, у вас уже есть правильный ответ.

18
ответ дан 3 December 2019 в 01:24
поделиться

Вы можете использовать ' вместо этого цитирует. Все, что в них заключено, не интерполируется.

Ваше решение с экранированием # также работает для меня. Действительно, интерпретатор Ruby показывает

=> "\#{anything}"

, но

> puts "\#{anything}"
#{anything}
=> nil

Ваша строка включает в себя именно то, что вы хотели, только метод p показывает это с escape-символами. Фактически, метод p показывает вам,

4
ответ дан 3 December 2019 в 01:24
поделиться

Для heredoc без необходимости вручную экранировать все ваши потенциальные интерполяции, вы можете использовать одинарную кавычку-heredoc. Это работает так:

item = <<-'END'
  #{code} stuff
  whatever i want to say #{here}
END
19
ответ дан 3 December 2019 в 01:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: