Rails3 Как я могу использовать :params в именованной области видимости?

Я пытаюсь отобразить список вехами для конкретного ордера. (У ордеров много стадий.)

В моей модели ордеров у меня есть следующее:

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")
    }

Проблема в том, чтобы заставить работать текущий ID ордера - :params[:order_id] явно неверно.

В моих маршрутах у меня есть следующее:

resources :orders do
     resources :milestones
  end

И моя url следующая:

http://127.0.0.1/orders/2/milestones

Как такое возможно? Я протестировал scope, заменив его идентификатором ордера вручную.

-- EDIT --

В соответствии с советом, приведенным ниже, я поместил в контроллер вехи следующее:

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

И, на мой взгляд, у меня есть следующее:

Но я получаю ошибку:

wrong number of arguments (1 for 0)

Полная стековая трасса здесь: http://pastie.org/2442518

5
задан Jenny Blunt 28 August 2011 в 09:29
поделиться