2013-11-04 40 views
1

例子,我做了一个表格这样如果我使用rails view form模板,有什么好处?

<form name="register" method="post" enctype="multipart/form-data"> 
    <p><h3>User check</h3></p> 
    <p>admin ID: <input type="text" name="userid"></p> 
    <p>admin Pass: <input type="password" name="password"></p> 

    <input type="submit" name="apply" value="Submit"></p> 
    <p>&nbsp;</p> 
</form> 

和我的经理想改变这种形式,以轨道这样的表单模板,

<%= form_for(:model) do |form| %> 
<p> 
    <%=form.label :input%> 
    <%=form.text_field :input, :placeholder => 'Enter text here...'%> 
</p> 

<%end%> 

我的问题是,它正常工作与基于HTML的前码。为什么我必须将其更改为rails代码?我只想保留我的前端代码......我不知道为什么我必须改变这个:(另外,我是Ruby on Rails的新手,这是主要原因,我不想改变现有的代码,它是否工作。

我真的很讨厌这个工作。我必须将所有属性Rails代码翻译,这让我真的筋疲力尽:(使用Rails形式的

回答

1

表单构建者在这里帮助

表单助手应该让你的生活更简单。如果您不先写纯HTML,它们比纯HTML替代方法更快。

他们也很难集成件提供了很多容易实现的,如:

  • 显示的日期选择选择组
  • 镜像事实复选框已选中在post数据
  • 如果你添加一个文件输入(实际上并不难实现,但容易忘记),自动在表单上添加multipart param
  • ...还有更多

进一步发展

所有这些都是关于舒适性的,如果你已经有了一个完美的纯html实现,你可能会认为你可以避免它。

但是如果某人稍后必须在表单中添加日期选择输入,会发生什么?她将不得不使用rails helper,因为它在控制器部分中节省了大量的时间来在数据库中设置日期。但是她不能使用表单构建器,因为你没有使用它。

现在,她必须选择使用非建造者date_select标签混合在纯html或...完全重写您的表格。你可能会意识到,混合不同的风格通常被认为是丑陋的,我们不喜欢红宝石的丑陋。

安全

表单标签助手还提供了一个重要的安全措施:CSRF protection。每次使用导轨助手创建<form>标签时,它都会自动添加包含密钥的隐藏输入。该密钥必须与表格数据一起发布以证明源自当前网站的请求。

如果您使用纯html格式,您将不会拥有此安全性。当然,你可以使用正确的方法手动添加令牌,但这会再浪费时间比简单地使用表单助手。

底线

主要的问题是,你使用Rails助手之前写纯HTML - 这是什么是浪费时间。

0

一些好处助手是:

  • 输入元素的名称一致的命名和IDS
  • 国际化支持对于标签
  • 用的form_for生成的URL是不易出错
  • 复选框更好地处理
  • 尼斯佣工像options_for_select
  • 少打字

这最后的可能是我最喜欢的:少打字

相关问题