Используйте массив ruby ​​для массива javascript в erb. Избегание цитат - PullRequest
9 голосов
/ 27 сентября 2011

Я нашел множество вещей в Интернете для этого, но они не работают для меня. я что-то пропустил.

В моем контроллере у меня есть

@t = ["a","b","c"]

в файле erb, который называется 'callback', @t выглядит так:

["a", "b", "c"] 

Я сделал хаки, чтобы заменить "на правильные ' символы. Я читал, что to_json должен работать, но это не так. Следующее не работает ["a","b","c"].to_json. Результаты такие же.

1 Ответ

22 голосов
/ 27 сентября 2011

to_json работает нормально. То, с чем вы сталкиваетесь - это защита XSS в Rails 3.x. Об этом есть хорошая статья на Railscasts / ASCIIcasts . Суть, однако, в том, что вам нужно использовать методы raw или html_safe:

В вашем контроллере:

@t_json = @t.to_json.html_safe

ИЛИ на ваш взгляд:

<%= raw @t %>
...