rails form_with form_tag form_for form ruby-on-rails object partials actionview

ruby-on-rails - form_tag - form_with ruby on rails



Carriles que pasan form_for object to partial (3)

Intente pasar el objeto de formulario como local <%= render :partial => "price_page", :locals=>{:f=>f} %>

Me gustaría pasar el form_for object a un partial:

<%= 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?


Me encontré con esta pregunta tratando de averiguar cómo obtener un generador de formularios 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 .

Se ve (algo) así:

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

Entonces, mi parcial tiene esto:

= fields_for price do |f| ...


Puede pasar el objeto del generador de formulario 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, recibirá el generador de formularios como una variable local "f", puede usar el siguiente,

<% f.radio_button, {} %>