JavaScript со встроенным Ruby: Как безопасно присвоить рубиновое значение переменной JavaScript

В командной строке Windows chdir или cd выведет полный путь к текущему рабочему каталогу в консоли. Если мы хотим скопировать путь, мы можем использовать: cd | clip.

Спасибо.

5
задан mu is too short 14 February 2012 в 20:10
поделиться

5 ответов

Я думаю, что пользовался бы рубиновой библиотекой JSON на @ruby_var, чтобы получить надлежащий js синтаксис для строки и избавиться от'', fex.:

res = foo(<%= @ruby_var.to_json %>)

(после того, как потребуйте "json" 'луг, не совсем уверенный, как сделать это на странице или если вышеупомянутый синтаксис правилен как я, havn't использовал тот язык шаблонной обработки),

(с другой стороны, если бы JSON, когда-либо измененный, чтобы быть несовместимым с js, который это повредило бы, но так как достойный объем кода использует оценку () к оценке json, я сомневаюсь, что это произошло бы в ближайшее время),

11
ответ дан 18 December 2019 в 06:24
поделиться
@ruby_var.gsub(/[']/, '\\\\\'')

Это выйдет из одинарной кавычки с апострофом, бережно храня Ваш JavaScript!

Кроме того, если Вы находитесь в направляющих, существует набор определенных для JavaScript инструментов.

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

Вы могли просто поместить строку в двойную кавычку?

res = foo("<%= @ruby_var %>"); 
2
ответ дан 18 December 2019 в 06:24
поделиться

Можно также использовать, осматривают предположение, что Вы знаете, что это будет одинарная кавычка:

res = foo(<%= @ruby_var.inspect %>);
2
ответ дан 18 December 2019 в 06:24
поделиться

Я не работаю со встроенным Ruby слишком много. Но как насчет использования p (который вызывает inspect) вместо <%= который мог бы делать что-то как print или puts. p всегда печатает строку, как будто это был код, перенесенный в двойные кавычки:

>> p "String ' \" String"
"String ' \" String"
# => nil  
>> p 'alpha " \' alpha'
"alpha \" ' alpha"
# => nil  
0
ответ дан 18 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

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