html_safe не работает в ruby ​​on rails

Я использую ckeditor для сохранения содержимого сообщений. Если я сохраняю что-либо в своей базе данных, он сохраняет контент с тегами html. Чтобы избежать html, я использую функцию <%= raw(posts.content) %>. Я использую Speak.js для добавления функций для прослушивания содержимого сообщений. Вот делаю так...

<script src="speakClient.js"></script>
<img src="img/listenpost.png" alt="Listen Post" onclick="speak('<%= posts_item.content.html_safe %>')" style="cursor:pointer;" />

но здесь он говорит контент с html-тегами. Я тоже пытался сделать так

 speak('<%== posts_item.content %>') or  speak('<%= raw posts_item.content %>')

Но у меня ничего не работает. Как избежать тегов html, чтобы мои сообщения были слышны без тегов HTML


person Free-Minded    schedule 24.05.2013    source источник
comment
speak('<%== posts_item.content %>') - После % (<%=) должен быть только один знак равенства.   -  person    schedule 24.05.2013
comment
speak('<%== posts_item.content %>') или speak('<%= raw posts_item.content %>') работают одинаково   -  person Free-Minded    schedule 24.05.2013
comment
Виноват. Я привык ставить только один знак равенства   -  person    schedule 24.05.2013


Ответы (2)


Вы также должны бежать внутри javascript. Использование помощника escape_javascript

speak('<%=j posts_item.content.html_safe %>')
person ck3g    schedule 24.05.2013
comment
Спасибо за ваш ответ, но я попробовал это в своем файле html.erb, это не работает. - person Free-Minded; 24.05.2013

Вы заявляете, что пробовали speak('<%= raw posts_item.content %>'). В этом случае правильным использованием необработанного вспомогательного метода будет <%= raw(posts_item.content) %> (обратите внимание, что posts_item.content заключено в круглые скобки).

person Community    schedule 24.05.2013
comment
Ruby также позволяет экранировать круглые скобки. Но я тоже пытаюсь поставить это, не работает - person Free-Minded; 24.05.2013