Мое приложение имеет сделки и заказы. Я обрабатываю заказы вручную, щелкнув ссылку на мою область моего администратора при просмотре сделок.Использование метода модели из разных контроллеров - Rails 3
просмотров/доступ/предложения/index.html.erb
<%= link_to "Process Orders", process_orders_access_deal_path(deal) %>
В моем /controllers/access/deals_controller.rb, у меня есть следующий метод.
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
Можно ли получить доступ к методу покупки в моей order.rb модели от моего /controllers/access/deals_controller.rb, и если да, то как?
Привет, Райан, спасибо, но мне не пришлось это делать раньше, поэтому я не знаю, как это сделать. В моей модели заказа я бы просто позвонил @ order.purchase, но из моего контроллера сделок я не уверен, как вызвать метод в модели Order. –
@Robert: Метод будет доступен, поскольку он доступен для экземпляров вашей модели 'Order'. Вам нужно перестать думать, что существует ограничение на модели, основанные на том, на каком контроллере вы находитесь. Там просто нет. Просто позвоните 'order.purchase' точно так же, как и вы, и это сработает. –
Спасибо за вашу помощь Райан. –