В моем приложении ruby on rails я должен использовать рекурсию для рендеринга вложенных комментариев.Использование помощников в представлении выходит из html?
Из-за этого я решил разгрузить рендеринг в функцию в помощнике.
Основная структура функции такова:
def display_comments(tree)
to_render = ""
to_render << render({:partial => 'comment', :locals => {:body => tree[:body]}})
tree[:children].each do |child|
to_render << display_comment(child)
end
return to_render
end
и в представлении я называю это так:
<% if comment_forest.length > 0 %>
<% comment_forest.each do |tree| %>
<%= display_comments(tree)
<% end %>
<% end %>
Однако, на веб-странице, рельсы ускользает все HTML и он заканчивает тем, как это:
Прохладный, это сработало! Удивительно, но рельсы все еще избежали html из введенной пользователем информации. Что это за магия? : O –
Фактически ретроспективно, пользовательские данные, вероятно, сбрасываются, когда они сохраняются не тогда, когда они отображаются. Верный? –
Согласно Кацу, если вы соедините безопасную строку с небезопасной, сначала будет избегана небезопасная строка, что, вероятно, происходит здесь. – sczizzo