Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3:用户输入转义在视图和邮件程序中的工作方式不同_Ruby On Rails_Ruby On Rails 3_Xss_Actionmailer_Actionview - Fatal编程技术网

Ruby on rails Rails 3:用户输入转义在视图和邮件程序中的工作方式不同

Ruby on rails Rails 3:用户输入转义在视图和邮件程序中的工作方式不同,ruby-on-rails,ruby-on-rails-3,xss,actionmailer,actionview,Ruby On Rails,Ruby On Rails 3,Xss,Actionmailer,Actionview,我在我的视图和邮件中都使用了以下代码集: <%= simple_format(auto_link(h(user_input))) %> 但是,当ActionMailer电子邮件中显示完全相同的字符时,我看到所有特殊字符,包括我的自动链接,都是双重转义的(例如,“”,结果显示不正确): 出于某种原因,我需要再次将其标记为html_安全以使其正常工作: <%= simple_format(auto_link(h(user_input))).html_safe %> 这

我在我的视图和邮件中都使用了以下代码集:

<%= simple_format(auto_link(h(user_input))) %>
但是,当ActionMailer电子邮件中显示完全相同的字符时,我看到所有特殊字符,包括我的自动链接,都是双重转义的(例如,
”,结果显示不正确):

出于某种原因,我需要再次将其标记为html_安全以使其正常工作:

<%= simple_format(auto_link(h(user_input))).html_safe %>

这将正确地输出:

&quot; <a href=3D"http://google.com">http://google.com</a> &quot;
“”

关于为什么ActionView和ActionMailer对同一代码的处理方式不同,你有什么想法吗?

如果你从电子邮件模板中调用simple_格式(以呈现换行符),你得到的行为是非常不寻常的,而且这个助手被一个私有方法覆盖了

无论如何,您可以使用以下方法访问电子邮件模板中的简单_格式:

ApplicationController.helpers.simple_format()

希望在另一个rails版本中可以修复此问题。

@mu太短了,我的电子邮件模板文件名为notify.html.erb
&quot; <a href=3D"http://google.com">http://google.com</a> &quot;
ApplicationController.helpers.simple_format()