2015-01-16 3 views
0

Я хочу добавить код javascript в тело через file.js.erb. Это то, что я написал:Как удалить & quot в js.erb для рендеринга javascript rails

$("body").append("<script type='text/javascript'> method_1({'<%= current_user.selections.pluck(:name).each do |t| raw t end %>'});</script>"); 

Но я всегда дает мне массив с & Quot; добавлен в код javascript. Я также попытался использовать raw/html_safe. но, похоже, не действует.

Я пробовал другие ссылки SO, но, похоже, это не помогает. Я использую рельсы 3.

+0

попробуйте использовать это 'raw (t.to_json) 'в блоке' each' или 't.to_json.html_safe' –

+0

это не сработает. – inquisitive

+0

это работает хорошо для меня, похоже, что вы что-то сделали неправильно –

ответ

0

После нескольких попыток я понял, что html_safe или сырье являются методы класса String, и I я использую его на массиве, также я удалил равный (=) из итератора, так вот как я это делаю сейчас:

<% current_user.selections.pluck(:path).each do |t| %><%= raw(t) %>': true, '<% end %>' 

Теперь это работает как-то .. Хотя я сталкиваюсь с какой-то другой проблемой, такой как получение пустой строки в конце массива, не знаю почему .. но по крайней мере, что &quot; удален

0

Вы можете добавить условие

{'<%= current_user.selections.pluck(:name).each do |t| raw (t.include?("&quot;") ? t.gsub("&quot;", "") : t) end %>'} 
+0

нет, похоже, что это не работает. Такое же поведение наблюдается. – inquisitive