如何在Rails的simple_format中为@request.correspondence添加粗体?
Rails simple_format 粗体样式实现方案
问题解答
能否为simple_format处理的内容添加粗体样式?
可以直接在待处理文本中嵌入HTML的<strong>或<b>标签实现粗体,只要确保Rails不会转义这些标签即可。如何让代码中的
@request.correspondence显示为粗体?
方法1:直接包裹标签并关闭转义(非生产环境临时用)
修改字符串拼接逻辑,把@request.correspondence用<strong>包裹,同时在调用simple_format时关闭自动转义:
# 拼接字符串时包裹粗体标签 asdf = "------------\r\n\r\n#{Date.today}\r\n\r\nINPUTED BY: #{current_fan.first_name} (INRU)\r\n\r\n<strong>#{@request.correspondence}</strong>\n"
渲染时添加配置选项:
<%= simple_format(asdf, {}, sanitize: false) %>
注意:如果
@request.correspondence是用户输入内容,直接关闭转义存在XSS风险,生产环境不建议用。
方法2:安全转义后包裹标签(推荐)
先对@request.correspondence做HTML转义,再包裹粗体标签,既保留样式又避免安全问题:
# 用h()方法转义特殊字符后包裹标签 asdf = "------------\r\n\r\n#{Date.today}\r\n\r\nINPUTED BY: #{current_fan.first_name} (INRU)\r\n\r\n<strong>#{h(@request.correspondence)}</strong>\n"
渲染时直接调用simple_format即可,默认机制会保留<strong>标签:
<%= simple_format(asdf) %>
内容的提问来源于stack exchange,提问作者daveasdf
相关产品推荐
相关产品推荐

