Использовать метод модели из другого контроллера - Rails 3 - PullRequest
0 голосов
/ 29 июля 2011

В моем приложении есть предложения и заказы. Я обрабатываю заказы вручную, нажимая на ссылку в моей админке при просмотре сделок.

вид / доступ / предложения / 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 и, если да, то как?

Ответы [ 2 ]

3 голосов
/ 29 июля 2011

Вы пытались это назвать?

Контроллеры и модели не связаны какой-то необъяснимой магией.Вы можете ссылаться на любой класс (т.е. модель) из любого другого класса, который вы хотите (например, контроллер).Нет ограничений.

0 голосов
/ 29 июля 2011

Перед использованием Rails прочитайте кое-что об объектно-ориентированном программировании и классах в Ruby. Пожалуйста, не принимайте это за личное, но вы не можете написать книгу без понимания алфавита. Я знаю это по собственному опыту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...