观点:
<%= form_for :blog_post do |f| %>
<ul>
<li>
<%= f.label :title %>
<%= f.text_field :title, :type => 'text', :id => 'title', :size => '', :limit => '255' %>
</li>
</ul>
<% end %>
<!DOCTYPE html>
<html>
<head>
<title>LevihackwithCom</title>
<script src="/javascripts/prototype.js?1285902540" type="text/javascript"></script>
<script src="/javascripts/effects.js?1285902540" type="text/javascript"></script>
<script src="/javascripts/dragdrop.js?1285902540" type="text/javascript"></script>
<script src="/javascripts/controls.js?1285902540" type="text/javascript"></script>
<script src="/javascripts/rails.js?1285902540" type="text/javascript"></script>
<script src="/javascripts/application.js?1285902540" type="text/javascript"></script>
<meta name="csrf-param" content="authenticity_token"/>
<meta name="csrf-token" content="UnhGSHHanJHfgJYhnksqJ1bfq3W+QEU2GJqLAMs2DmI="/>
</head>
<body>
<form accept-charset="UTF-8" action="/blog_post/new" method="post">
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓" />
<input name="authenticity_token" type="hidden" value="UnhGSHHanJHfgJYhnksqJ1bfq3W+QEU2GJqLAMs2DmI=" />
</div>
<ul>
<li>
<label for="blog_post_title">Title</label>
<input id="title" limit="255" name="blog_post[title]" size="" type="text" />
</li>
</ul>
</form>
</body>
</html>
我正在搞乱表格助手。上面的代码显示了我的视图文件以及它生成的HTML。什么是可怕的div充满内联CSS塞满隐藏字段我没有明确要求?什么设置会导致生成这些字段?有没有办法让我删除内联CSS?
答案 0 :(得分:20)
这些字段以轨道形式生成,以确保稳健性:
utf8=✓
utf8隐藏字段确保将表单值提交为UTF8。它通过确保提交表单中至少一个UTF8字符来实现此目的。大多数浏览器都尊重文档的编码并将表单值视为相同,但是有一个浏览器存在问题。因此,utf8得到一个复选标记。
authenticity_token用于防止跨站点请求伪造。
为复选框生成类似的隐藏字段。由于未选中的复选框不会提交给服务器,因此隐藏字段可确保提交“0”(错误)值:如果您有一系列复选框,这将非常有用。
这些字段包含在带有内联样式的div中,以确保它们不会破坏布局。你可以在形式帮助源代码中找到并覆盖它,但我不推荐它:它是最小的侵入性,并且它是有原因的。
答案 1 :(得分:4)
如果你想摆脱utf8=✓
你可能对这个宝石感兴趣,它只会将它添加到不符合标准的浏览器:
https://github.com/softace/utf8_enforcer_workaround