Ответ 1
Зачем вам это нужно? Модель не должна знать о своих контроллерах. Возможно, редизайн вашей системы будет более уместным в этом случае.
Вот ссылка на аналогичный поток.
Я определил метод в ApplicationController
class ApplicationController < ActionController::Base
helper_method :get_active_gateway
def get_active_gateway(cart)
cart.account.gateways
end
end
Когда я вызываю этот метод в модели
class Order < ActiveRecord::Base
def transfer
active= get_active_gateway(self.cart)
end
end
Выбрасывает ошибку undefined local variable get_active_gateway
.
Итак, я написал
class Order < ActiveRecord::Base
def transfer
active= ApplicationContoller.helpers.get_active_gateway(self.cart)
end
end
Затем он выбрасывал error undefined method nil for Nilclass
.
Я работаю в Rails 3.2.0.
Зачем вам это нужно? Модель не должна знать о своих контроллерах. Возможно, редизайн вашей системы будет более уместным в этом случае.
Вот ссылка на аналогичный поток.
Как выбор дизайна, его не рекомендуется вызывать контроллеры контроллера из ваших моделей.
Вы можете просто передать необходимые данные своим методам модели в качестве аргументов.
def transfer(active_gateway) active = active_gateway end