특정 주문에 대한 마일스톤 목록을 표시하려고합니다. (주문은 많은 이정표가 있습니다.) 내 주문 모델에서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
어떻게 이런 일이 가능할까요? 수동으로 주문 ID로 교체하여 범위를 테스트했습니다.
- - 편집
아래의 조언에 따라, 나는이 내 이정표 컨트롤러에 다음을 넣어했습니다
< :
@orders = Order.open(params[:order_id])
그리고 내보기에,이이 % @ orders.each do | open | %> 오류가 발생합니다
그러나 :
이wrong number of arguments (1 for 0)
전체 스택 트레이스가 여기에 있습니다 :
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")
}
을 그리고이 같은 컨트롤러에 전화 : http://pastie.org/2442518
전체 스택 추적을 추가하십시오. –
할 것입니다. 방금 튀어 나왔다. 나중에 붙여 넣습니다. 다시 한 번 감사합니다 –
@ Mauricio-Linhares. 전체 추적으로 내 대답을 편집했습니다. 도움을 주셔서 감사합니다. –