Ruby on Rails: символ в качестве аргумента в form_for

Я понимаю, что передается form_for метод при выполнении чего-то вроде:

<% form_for(@user) do |f| %> ... <% end %>

если @user устанавливается в контроллере. Это довольно очевидно.

Но что происходит, когда мы проходим :userкак я видел много примеров?

<% form_for(:user) do |f| %> ... <% end %>

Когда я должен использовать версию символа?

1 ответ

Решение

Использование символа сгенерирует:

<form action="/users" method="post">

Используя объект @user, установленный на новый, вы получите:

<form action="/users/create" class="new_user" id="new_user" method="post">

Если вы установите @user на что-то другое, это, конечно, изменит сгенерированный тег формы... попробуйте сами.

В конце концов все зависит от того, что вы пытаетесь сделать. Возможно, вы захотите использовать символ, если у вас есть несколько пользовательских форм на одной странице.

Другие вопросы по тегам