내 응용 프로그램에 거래가 있고 주문이 있습니다. 거래를 볼 때 내 관리 영역 링크를 클릭하여 주문을 수동으로 처리하고 있습니다. 내 /controllers/access/deals_controller.rb에서다른 컨트롤러 - 레일 3의 모델 방법 사용
보기/액세스/거래/index.html.erb
<%= link_to "Process Orders", process_orders_access_deal_path(deal) %>
, 나는 다음과 같은 방법이있다. 내가 주문이 즉시 처리되지 않을 것이다 변경을 필요로하기 전에 거기를 설정하기 때문에
def process_orders
@deal = Deal.find(params[:id])
@orders = @deal.orders.where("state" == ?, "pending")
@orders.each do |order|
order.purchase
end
end
내 구매 방법은 내 거래 모델에없는, 내 수주 모델입니다.
주문 컨트롤러의 구매 방법.
def purchase
response = Order.gateway.purchase(order_amount, billing_id, options)
end
내 /controllers/access/deals_controller.rb에서 내 order.rb 모델의 구입 방법에 액세스하는 방법 그렇다면 할 수 있습니까?
안녕하세요, Ryan, 감사합니다.하지만 이전에 그렇게하지 않아도되었으므로 확실하지 않습니다. 내 주문 모델에서는 @ order.purchase를 호출하지만 거래 컨트롤러에서는 Order 모델에서 메서드를 호출하는 방법을 잘 모르겠습니다. –
@ 로버트 : '주문'모델의 인스턴스에서 사용할 수 있기 때문에이 방법을 사용할 수 있습니다. 당신은 당신이 속한 컨트롤러를 기반으로하는 모델에 제한이 있다는 생각을 멈출 필요가 있습니다. 정확히 당신이하고있는 것처럼'order.purchase'를 호출하면 올바르게 동작 할 것입니다. –
라이언에게 도움을 주셔서 감사합니다. –