14

我正在阅读一本 Rails 书,到目前为止它一直form_for用于创建表单。在它正在为用户构建登录页面的新章节中,它正在使用form_tag。所以我想知道我们应该何时以及如何知道使用哪一个?难道他也做了一件教育性的事情来展示这form_tag一点吗?还是应该考虑更多的技术原因?

4

2 回答 2

27

form_tag只需创建一个表单。form_for为模型对象创建一个表单。它们不可互换,您应该使用适合特定情况的那个。

form_for为模型对象创建表单更容易使用,因为它根据对象是新记录还是已保存记录来确定要使用的 url 和使用的 http 方法。

于 2013-01-22T17:09:08.510 回答
16

在大多数情况下,当您使用模型将数据发送到数据库时,使用方法如create, update, destroy. 对于这种类型的操作,您可以使用form_for.

而是form_tag只创建一个简单的formhtml,例如,一个搜索:

 <%= form_tag("/search", :method => "get") do %>
   <%= label_tag(:q, "Search for:") %>
   <%= text_field_tag(:q) %>
   <%= submit_tag("Search") %>
<% end %>
于 2013-01-22T17:10:53.730 回答