例如,我做了一个这样的表格
<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> </p>
</form>
我的经理想要将此表单更改为rails表单模板,
<%= 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代码,这让我非常疲惫:(
答案 0 :(得分:1)
表格助手应该让你的生活更简单。如果你不先写纯HTML,那么它们比纯html替代版更快。
它们还为困难的集成部分提供了许多简单的实现,例如:
所有这一切都与安慰有关,如果你已经有一个完美的纯HTML实现,你可能会认为你可以避免它。
但是如果有人以后必须在表单中添加日期选择输入会发生什么?她将不得不使用rails helper,因为它在控制器部分节省了大量时间来在数据库中设置日期。但她无法利用表单构建器,因为您还没有使用它。
现在,她必须选择使用纯HTML中混合的非构建器date_select
标记或...来完全重写表单。你可能已经意识到,混合不同的风格通常被认为是丑陋的,我们不喜欢红宝石中的丑陋。
表单标记帮助程序还提供了一项重要的安全措施:CSRF protection。每次使用rails helper创建<form>
标记时,它都会自动添加包含密钥的隐藏输入。该密钥必须与表单数据一起发布,以证明来自当前网站的请求。
如果您使用普通的html表单,则不具备此安全性。你当然可以使用正确的方法手动添加令牌,但这又浪费时间而不仅仅是使用表单助手。
主要问题是你在使用rails helper之前编写了纯html - 这就是浪费时间。
答案 1 :(得分:0)
使用Rails表单助手的一些好处是:
options_for_select
最后一个可能是我的最爱:少打字。