2010-01-05 11 views
6

entiendo lo que se pasa al método form_for al hacer algo como:Ruby on Rails: símbolo como argumento a form_for

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

si @user se encuentra en el controlador. Esto es bastante obvio

Pero, ¿qué sucede cuando pasamos :user, como he visto en muchos ejemplos?

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

¿Cuándo debería usar la versión del símbolo?

+0

posible duplicado de [variable de instancia vs. símbolo en ruby ​​on rails (form \ _for)] (http://stackoverflow.com/questions/957204/instance-variable-vs-symbol-in-ruby-on-rails -form-for) –

Respuesta

7

Usando el símbolo generará:

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

@user Usando el objeto de configurar a la nueva que se obtiene:

<form action="https://stackoverflow.com/users/create" class="new_user" id="new_user" method="post"> 

Si establece @user a otra cosa que va a cambiar la etiqueta de formulario generado , por supuesto ... pruébalo por ti mismo.

Al final, todo depende de lo que estés tratando de hacer. Es posible que desee utilizar el símbolo si tiene múltiples: formularios de usuario en la misma página.

+0

Hice esta prueba pero el valor para la acción no cambia (sigue siendo '/ users'). Aunque recibo lo mismo que mencionaste en el bloque de código para la clase y la identificación. – Mark