Вопрос новичка. У меня есть модальные коробки со списком поставщиков по индексу. Я хочу создать новую форму покупки для этого поставщика (и filter @ 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>
Я получаю ноль ошибок при этом undefined method "name" for nil:NilClass
Не уверен, нужно ли мне определять @supplier in purchase#new action
Спасибо.
* Редактировать *
Я пытаюсь создать новую форму с помощью http://localhost:3004/purchases/new?supplier_id=2
. Через консоль я могу проверить, что для параметра supplier_id установлено значение Parameters: {"supplier_id"=>"2"}
, однако, когда я отправляю форму, она жалуется на то, что supplier_id равен nil.
Как проверить, правильно ли установлен 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