forms - Accessing and using an extra parameter in Rails nested routes -


i have rails e-commerce app 1 creates order, adds items order.

order belongs user, , have orderitem join table orders , items. user can create order other users.

routes.rb

  resources :items    resources :users, only: [:show]     resources :orders       resources :order_items, only: [:create, :update, :destroy]     end 

order#show renders partial has items, button add orderitem order

<%= render partial: 'order_items/new', locals: { user: @user, order: @order} %> 

here partial view/order_items/_new.html.erb

<h3>add items</h3> <% @items.each |item| %>     <div>         <%= item.name %>         <%= render 'order_items/add', locals: { user: @user, order: @order, item: @item} %>     </div> <% end %> 

then partial order_items/_add.html.erb

<%= form_for [@user, @order, @order.order_items.build] |f| %>     <%= f.submit 'add item', class: 'btn' %> <% end %> 

this creates orderitem, item_id nil. have pass in item_id parameter this:

<%= f.hidden_field :item_id, :value => item.id %> 

but problem cannot access item in form. what's best way go ?

you can this:

<%= form_for [@user, @order, @order.order_items.build(item_id: @item.id)] |f| %>   #.... <% end %> 

...or if need see item name (or other attribute)

<%= form_for [@user, @order, @order.order_items.build(item_id: @item.id)] |f| %>   <%= f.label @item.name #or whatever attribute need see %> <% end %> 

Comments