I am reading a Rails book and so far it has been using form_for
to create the forms. In the new chapter that it is building a login page for users, it is using
In most cases when you are sending data to your database with a model, in methods like create
, update
, destroy
. For this type of action you can use form_for
.
Instead form_tag
only create a simply form
html, for example, a search:
<%= form_tag("/search", :method => "get") do %>
<%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
<%= submit_tag("Search") %>
<% end %>
form_tag simply creates a form. form_for creates a form for a model object. They are not interchangeable and you should use the one that is appropriate for a given case.
form_for
is a bit easier to use for creating forms for a model object because it figures out what url to use and what http method to use depending on whether the object is a new record or a saved record.