我在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中工作。
答案 0 :(得分:8)
你为什么需要这样的东西?模型不应该知道它的控制器。在这种情况下,重新设计系统可能会更合适。
以下是类似thread的链接。
答案 1 :(得分:5)
作为设计选择,不建议您从模型中调用控制器助手。
您只需将所需的详细信息作为参数传递给模型方法即可。
def transfer(active_gateway) active = active_gateway end