form_for和form_tag,何时使用哪一个?

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

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

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

在大多数情况下,当您使用模型将数据发送到数据库时,请使用createupdatedestroy 。 对于此类操作,您可以使用form_for

form_tag只创建一个简单的form html,例如,搜索:

  <%= form_tag("/search", :method => "get") do %> <%= label_tag(:q, "Search for:") %> <%= text_field_tag(:q) %> <%= submit_tag("Search") %> <% end %>