Я читаю книгу Rails и до сих пор использовал form_for
для создания форм. В новой главе, что он создает страницу входа для пользователей, вместо этого используется form_tag
.
Поэтому я хотел знать, когда и как мы должны знать, какой из них использовать? Это просто учебная вещь, которую он сделал, чтобы показать это тоже? или есть больше технических причин, которые следует учитывать?
Form_for и form_tag, когда использовать какой?
Ответ 1
form_tag
просто создает форму. form_for
создает форму для объекта модели. Они не взаимозаменяемы, и вы должны использовать тот, который подходит для данного случая.
form_for
немного проще использовать для создания форм для объекта модели, поскольку он определяет, какой url использовать и какой метод http использовать в зависимости от того, является ли объект новой записью или сохраненной записью.
Ответ 2
В большинстве случаев, когда вы отправляете данные в свою базу данных с помощью модели, в таких методах, как 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 %>