2012-09-03 16 views
32

me gustaría pasar el objeto form_for a un parcial:carriles que pasan form_for objeto parcial

<%= form_for @price do |f| %> 
    ... 
    <%= render :partial => "price_page", :object => @price, :as => :f %> 
    ... 
<% end %> 

cuando llamo:

f.radio_button 

trae el error:

undefined method `radio_button' for #<Price:0x3cb1ed0> 

¿Cómo puedo usar f como suelo hacerlo en este parcial?

Respuesta

49

Try forma pasajera objeto como locales <%= render :partial => "price_page", :locals=>{:f=>f} %>

+1

funcionaba como una golosina. Buen trabajo – Harry

+1

wow gracias a que funcionó para mí .... + 1 del futuro =) –

+0

El único problema que tuve con esto es que no puedes incluir 'nested_form' dentro del parcial. Devuelve el error – bcackerman

7

Puede pasar objeto constructor de la forma como una variable local, como a continuación,

<%= form_for @price do |f| %> 
    <%= render :partial => "price_page", :locals => { :f => f } %> 
<% end %> 

en su archivo parcial que va a recibir constructor de la forma como una variable local "f", puede usar el siguiente,

<% f.radio_button, {} %> 
+1

¿Realmente? ????? Hiciste exactamente lo mismo que el tipo anterior –

+0

¡Sí, pero solo unos minutos después! –

+0

Sí, SO soy brutal acerca de correr para ser el primero en responder. – count0

5

Me encontré con esta pregunta tratando de averiguar cómo obtener una forma builde r en un parcial sin una etiqueta de formulario adicional. Ese es el caso de uso principal que podría pensar para esta pregunta, por lo que estoy agregando esta respuesta para futuros visitantes.

Para resolver mi problema, tengo mi form_for en mi diseño y presento mi aprobación parcial solo del modelo. En mi parcial uso fields_for.

Las apariencias (algo) así:

= form_for @price do |f| 
    ... 
    = render partial: "price_page", object: @price, as: 'price %> 
    ... 

Entonces, mi elemento parcial tiene esto:

= fields_for price do |f| 
    ... 
Cuestiones relacionadas