Rails passing form_for object to partial Rails passing form_for object to partial ruby-on-rails ruby-on-rails

Rails passing form_for object to partial


Try passing form object as local <%= render :partial => "price_page", :locals=>{:f=>f} %>


You can pass form builder object as a local variable like below,

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

in your partial file you will be receiving form builder as a local variable "f", you can use like below,

  <% f.radio_button, {} %>


I ran across this question trying to figure out how to get a form builder into a partial without an additional form tag. That's the primary use case I could think of for this question, so I'm adding this answer for future visitors.

To solve my problem, I have my form_for in my layout and I render my partial passing only the model. In my partial I use fields_for.

Looks (something) like this:

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

Then, my partial has this:

= fields_for price do |f|   ...