我有一个 Portfolio 模型,其中包含一个文本类型的注释字段,其值是一组由 cr 和 nl 字符组合分隔的段落。目标是将段落提取到一个数组中,将它们包装在 <p> 标签中,然后重新加入它们以输出到浏览器;所以下面代码的重点是第 6-8 行。
我遇到的问题是 < 和 > 字符被呈现为 HTML 实体 < 和>。
我是 Ruby 和 Rails 的新手,所以我的猜测是这不能按预期工作的原因是因为我可能采用了不正确的方法——我想知道一个有经验的 Ruby 编码器将如何解决这个问题种情况。在将内容发送到视图之前,如何将 HTML 标记插入到内容中?或者这总是违反 MVC 模型——在这种情况下,解决这类问题的正确方法是什么?
这是代码:
1. module ApplicationHelper
2.
3. def portfolio_featured
4. @portfolios = Portfolio.all
5. @portfolios.each do |p|
6. paras = p.comments.split(/\r?\n\r?\n/)
7. paras.collect! { |p| "<p>" + p + "</p>" }
8. p.comments = paras.join
9. end
10. end
11.
12. end