初心者の質問。私はインデックス上のモーダルボックスリストサプライヤーを持っています。私はこのサプライヤー(と@ supplier.products)のための新しい購入フォームをレンダリングしたいので、何とかsupplier_idを渡す必要があります。フォームを使ってフォームにパラメータを渡す方法
モーダルウィンドウ
<% @suppliers.each do |supplier| %>
<li><%= link_to supplier.name, new_purchase_path(@supplier) %></li>
<% end %>
フォーム
<%= nested_form_for(@purchase) do |f| %>
<div class="field">
<%= f.label :supplier_id, :class => "mandatory" %>
<%= @supplier.name %>
<%= collection_select(:purchase, :supplier_id, Supplier.all, :id, :name, :prompt => true) %>
</div>
私はので、私は@supplier in purchase#new action
感謝を定義する必要がある場合はわからないundefined method "name" for nil:NilClass
を行うことではnilエラーが発生します。
*編集* 私は何をしようとしているが、私はそれがSUPPLIER_IDさゼロ文句フォームを送信するときしかしParameters: {"supplier_id"=>"2"}
に設定されているSUPPLIER_IDコンソールから確認することができhttp://localhost:3004/purchases/new?supplier_id=2
て新しいフォームを作成することです。
supplier_idが正しく設定されていることを確認するにはどうすればよいですか?
def new
@supplier = Supplier.find(params[:supplier_id])
@purchase = current_user.purchases.new(params[:supplier_id => @supplier.id])
@products = @supplier.products
@products.each do |product|
@purchase.purchase_items.build(:product_id => product.id)
end
respond_to do |format|
format.html # new.html.erb
format.json { render json: @purchase }
end
end
コントローラーアクションの適切な部分を置くことはできますか? supplier_idを使用してサプライヤなどをどこから取り出すのですか? :) –
これはなんですか? 'params [:supplier_id => @ supplier.id]'?それは単に ':supplier_id => @ supplier.id'ではありませんか? –