I have defined method in ApplicationController
class ApplicationController < ActionController::Base
helper_method :get_active_gateway
def get_active_gateway(cart)
cart.account.gateways
end
end
When I am calling this method in model
class Order < ActiveRecord::Base
def transfer
active= get_active_gateway(self.cart)
end
end
It throwing error undefined local variable get_active_gateway
.
So I wrote
class Order < ActiveRecord::Base
def transfer
active= ApplicationContoller.helpers.get_active_gateway(self.cart)
end
end
Then it was throwing error undefined method nil for Nilclass
.
I am working in Rails 3.2.0.
Why would you need such thing? The model should not know about its controllers. Maybe a redesign of your system will be more appropriate in this case.
Here is a link to similar thread .
As a design choice, its not recommended to call controller helpers from your models.
You can just simply pass the required details to your model methods as arguments.
def transfer(active_gateway) active = active_gateway end
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.