Sto provando a visualizzare un elenco di pietre miliari per un ordine particolare. (Ordini sono molti traguardi.)Rails3 Come posso usare: params in scope con nome?
Nel mio modello ordini, ho questo:
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")
}
Il problema che sto avendo è sempre l'identificazione di ordine corrente di lavorare -: params [: order_id] è chiaramente sbagliato.
Nei miei itinerari ho questo:
resources :orders do
resources :milestones
end
E mio URL è la seguente:
http://127.0.0.1/orders/2/milestones
Come è possibile? Ho testato lo scope sostituendo manualmente un ID ordine.
- EDIT -
Come da consigli qui sotto, ho messo il seguente nel mio controller pietre miliari:
@orders = Order.open(params[:order_id])
E a mio avviso, ho questo:
< % @ orders.each do | open | %>
Ma ottengo un errore:
wrong number of arguments (1 for 0)
Lo stacktrace completo è qui: http://pastie.org/2442518
Aggiungere la traccia dello stack completo. –
Lo farà. Sono appena spuntato. Incollerà più tardi. Grazie ancora –
@ Mauricio-Linhares. Ho modificato la mia risposta con la traccia completa - grazie per l'aiuto. –