2011-11-22 7 views
0

초급 질문. 나는 색인에 모달 박스 목록 공급 업체가 있습니다. 이 공급 업체 (및 @ 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

을 수행하여 전무 오류가 발생합니다.

* 편집 * 난 할 노력하고있어 것은 내가 그것을 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 
+0

컨트롤러 동작의 적절한 부분도 넣을 수 있습니까? supplier_id를 사용하여 공급 업체 등을 어디에서 가져 옵니까? :) –

+0

무엇입니까?'params [: supplier_id => @ supplier.id]'? 그저': supplier_id => @ supplier.id'가 아니겠습니까? –

답변

0

비슷한 이름의 변수가 혼합되어있어 혼란 스럽습니다.

@suppliers @supplier 공급 업체

그들 각각이오고있다?

내 추측 첫 번째 모달 상자이되어야한다는 것입니다 :

<% @suppliers.each do |supplier| %> 
    <li><%= link_to supplier.name, new_purchase_path(supplier) %></li> 
<% end %> 

하지만 당신의 오류 메시지가 공급 업체를 표시하는 것입니다 전무 ... 나에게 당신이 기입 할 무엇인지에 대해 궁금하게하는 당신이 을하지 일어날 경우 @suppliers

어떤 공급 업체가 아직 ... Supplier.all도 전무를 반환하고이 collection_select와 심하게 작동 할 수 있습니다 (즉, 그것은 전화를하려고합니다 : 이름 공급 업체에 때이 아직 없습니다). 그래서 당신은 그 컬렉션 주위에 if Supplier.count > 1과 같은 것을 넣어야 할 수도 있습니다 ... 아니면 당신의 비즈니스 로직에 적절한 다른 것입니다.

+0

안녕하세요, 에린, 답장을 보내 주셔서 감사합니다. 요청한 해당 부분을 사용하여 제 질문을 업데이트하겠습니다. 그러나 나는 Db에 몇 몇 공급 업체가 있다는 것을 확인할 수 있으므로 문제는 거기에서 오지 않는다. – Gaelle

관련 문제