问题描述
在 Ruby on Rails 3(目前使用 Beta 4)中,我看到当使用 form_tag
或 form_for
助手时,有一个名为 _snowman
显示 ☃ (Unicode x9731) 的值.
In Ruby on Rails 3 (currently using Beta 4), I see that when using the form_tag
or form_for
helpers there is a hidden field named _snowman
with the value of ☃ (Unicode x9731) showing up.
所以,这是做什么用的?
So, what is this for?
推荐答案
这是为了支持 Internet Explorer 5 并鼓励它使用 UTF-8 表示其形式.
This is here to support Internet Explorer 5 and encourage it to use UTF-8 for its forms.
看到的提交消息此处详细说明如下:
The commit message seen here details it as follows:
修复几个已知的网络编码问题:
- 在所有表单上指定接受字符集.所有最近的浏览器,以及IE5+,将使用指定的编码用于表单参数
- 不幸的是,IE5+ 不会查看接受字符集,除非至少有一个表单值中的字符不是在页面的字符集中.由于用户可以覆盖默认值
字符集(Rails 设置为 UTF-8),我们提供一个隐藏的输入包含一个 Unicode 字符,强制 IE查看接受字符集. - 既然绝大多数网页输入是 UTF-8,我们设置入站参数为 UTF-8.这会消除许多不兼容的情况ASCII-8BIT 和
之间的编码UTF-8. - 您可以放心地忽略参数[:_snowman]
简而言之,您可以放心地忽略此参数.
In short, you can safely ignore this parameter.
不过,我不确定我们为什么要支持 Internet Explorer 5 等旧技术.如果你问我,这似乎是一个非常非 Ruby on Rails 的决定.
Still, I am not sure why we're supporting old technologies like Internet Explorer 5. It seems like a very non-Ruby on Rails decision if you ask me.
这篇关于Ruby on Rails 3 表单中的 _snowman 参数是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!