我一直试图在位于我的控制器内的辅助函数中渲染我的一个部分。
我遇到的第一个问题是帮助程序返回的是每个循环而不是循环的结果。为了解决这个问题,我试图让它返回一个包含循环结果的字符串。
def display_replies(comment)
if comment.replies.count > 0
string = ""
comment.replies.each do |reply, index|
string = string + (render partial: "comment", locals: {index: index}).to_s.html_safe
end
string
end
在视图中调用<%= display_replies(reply) %>
当我查看我的视图时,返回和显示的是 HTML,但是它被转义并因此是纯文本,它看起来像这样:
["<div class='c comment'>\n<div class='profile'>\n<img src='/assets/profile_image_sample.jpg'>\n</div>\n<div class='message'>\n<div class='username'>Will Leach</div>\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus adipiscing purus et mi aliquet malesuada. Curabitur porttitor varius turpis eget sollicitudin. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut dapibus consectetur tortor, nec aliquet lacus tempus vitae. Sed felis massa, dapibus in arcu sit amet, rhoncus condimentum eros. Etiam rutrum lectus in malesuada aliquam. Mauris vitae diam vel felis accumsan vulputate vel nec tortor. Nunc pretium hendrerit est, ut cursus ipsum commodo sit amet.\n<div class='reply-link'>\n<a href='#'>Reply to Comment</a>\n</div>\n</div>\n</div>\n"]
我只是希望这是常规的未转义 HTML。我在某处读到添加 html_safe 可以解决此问题,但可惜没有。
然后去哪儿?