form_for和form_tag,何时使用哪一个?
我正在阅读Rails书籍,到目前为止,它一直在使用form_for
来创建表单。 在新章节中,它正在为用户构建登录页面,而是使用form_tag
。 所以我想知道何时以及如何知道使用哪一个? 他也做了一件教育事情,也展示了这个form_tag
吗? 还是应该考虑更多的技术原因?
form_tag
只是创建一个表单。 form_for
为模型对象创建表单。 它们不可互换,您应该使用适合特定情况的那个。
form_for
更容易用于为模型对象创建表单,因为它根据对象是新记录还是已保存记录来确定要使用的URL和要使用的http方法。
在大多数情况下,当您使用模型将数据发送到数据库时,请使用create
, update
, destroy
。 对于此类操作,您可以使用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 %>