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