Rails 3 Form Helpers:UTF8和其他隐藏字段

Lev*_*ith 9 forms views ruby-on-rails

风景:

<%= 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="&#x2713;" />
        <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> 
Run Code Online (Sandbox Code Playgroud)

我正在搞乱表格助手.上面的代码显示了我的视图文件以及它生成的HTML.什么是可怕的div充满内联CSS塞满隐藏字段我没有明确要求?什么设置会导致生成这些字段?有没有办法删除内联CSS?

And*_*Vit 21

这些字段以rails形式生成以获得稳健性:

utf8=?

utf8隐藏字段确保将表单值提交为UTF8.它通过确保提交表单中至少一个UTF8字符来实现此目的.大多数浏览器都尊重文档的编码并将表单值视为相同,但是有一个浏览器存在问题.因此,utf8得到一个复选标记.

authenticity_token用于防止跨站点请求伪造.

为复选框生成类似的隐藏字段.由于未选中的复选框未提交到服务器,因此隐藏字段可确保提交"0"(错误)值:当您拥有一系列复选框时,这会很有用.

这些字段包含在带有内联样式的div中,以确保它们不会破坏布局.你可以在形式帮助源代码中找到并覆盖它,但我不推荐它:它是最小的侵入性,并且它是有原因的.

  • 是的,这是妥协,但明智地使用内联CSS并不违反Web标准.任何其他方式都会使它依赖于您的样式表:它需要独立于项目中的任何其他内容而正确隐藏. (3认同)
  • 但是内联CSS不对.这很难看,也不符合网络标准.有没有其他开发人员对Ruby表单助手感到沮丧并找到了解决方案? (2认同)