2011-08-27 25 views
5

Belirli bir sipariş için kilometre taşları listesini görüntülemeye çalışıyorum. (Siparişler pek çok dönüm noktası vardır.) Emirler modelindeRaylar3 Nasıl kullanabilirim?

, bu var:

scope :open, lambda { 
    joins("join milestones on milestones.order_id = orders.id"). 
     where("order_id = ? AND milestone_status = ?", :params[:order_id], true). 
     group("orders.id") 
    } 

işe güncel sipariş kimliğini oluyor yaşıyorum sorun: - params [: order_id] açıkça yanlış. Benim yolları ise

bu var:

resources :orders do 
    resources :milestones 
    end 

Ve şöyle benim url geçerli:

http://127.0.0.1/orders/2/milestones

Bu nasıl mümkün olabilir? El ile bir sipariş numarası ile değiştirerek kapsamı test ettim.

- - DÜZENLEME

aşağıda tavsiye gereğince, benim kilometre taşları denetleyicisi aşağıdaki koyduk:

<:

@orders = Order.open(params[:order_id]) 

Ve bana göre, bu var % @ orders.each do açık | %> Bir hata alıyorum

Ama:

wrong number of arguments (1 for 0) 

tam StackTrace buradadır:

scope :open, lambda { |order_id| 
joins("join milestones on milestones.order_id = orders.id"). 
    where("order_id = ? AND milestone_status = ?", order_id, true). 
    group("orders.id") 
} 

Ve böyle Kumandanızda diyoruz: http://pastie.org/2442518

+0

Tam yığın izlemeyi ekleyin. –

+0

Yapacak. Sadece patladı. Daha sonra yapıştırır. Tekrar teşekkürler –

+0

@ Mauricio-Linhares. Cevabımı tam izleme ile düzenledim - yardım için teşekkürler. –

cevap

4

şöyle tanımla :

def index 
    @orders = Order.open(params[:order_id]) 
end 
+0

Teşekkürler. Kilometre taşları denetleyicisi koydum ama bir hata alıyorum. Sorumu güncelledim. Jx –

+0

'| order_id |' parçasını lambdaya eklediniz mi? – Eric

+0

@Eric - yep, yukarıdaki gibi takip etti. –

İlgili konular