【问题标题】:Ruby - html tags are not converted to formatting tagsRuby - html 标签不会转换为格式化标签
【发布时间】:2012-04-11 14:17:59
【问题描述】:

我有一个简单的表单,用户可以在其中写一些文本,然后这些文本将发送到他的电子邮件。这个过程工作正常,但我对用户写的文本有疑问 - 在电子邮件中显示如下:

["sadgsdah\r\nsdh\r\ndsf\r\nh\r\nfdhdfhdfh\r\n\r\n\r\n\r\nfdh\r\ndf\r\njh"]

为什么会有括号和\n\r 字符?

在将带有内容的变量放入电子邮件模板之前,我尝试执行以下操作:

mess_body = params[:contact][:message].to_s.html_safe

但不幸的是,这对我没有帮助......我做错了什么?

【问题讨论】:

    标签: ruby-on-rails ruby string string-formatting html


    【解决方案1】:

    要将换行符转换为在 html 中正确显示,请使用 simple_format 转换文本。

    【讨论】:

      【解决方案2】:

      首先

      mess_body = params[:contact][:message]
      

      返回一个数组,而不是一个东西。这就是为什么你在输出周围得到 [" 和 "] 的原因。 你可以像这样得到第一个元素:

      mess_body = params[:contact][:message][0]  
      

      此外,\n\r 是文本框的行尾。假设您发送的电子邮件是 HTML,则 \n\r 应替换为字符串中的

      【讨论】:

      • 是的,我完全忘记了那个数组而不是字符串。但是关于\n\r 的问题仍然存在——它们只是被空白代替,而不是新行——这就是我在邮箱中看到的。但是当我查看项目的日志时,正确显示了new line标签...
      • 如果文本进入 html 消息,换行符在视觉上只是空格 - 要使 html 强制换行,您需要一个
        标签
      • @DGM 你的意思是我必须手动将\n\r 字符转换为<br />
      • 是的,你应该这样做
      • 是的,但不要重新发明它,使用我在另一个答案中发布的 rails helper。
      猜你喜欢
      • 2015-11-20
      • 2015-02-10
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      • 2023-01-08
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多