Comment appeler les méthodes définies dans ApplicationController dans les modèles
J'ai défini la méthode dans ApplicationController
class ApplicationController < ActionController::Base
helper_method :get_active_gateway
def get_active_gateway(cart)
cart.account.gateways
end
end
Quand je suis à l'appel de cette méthode dans le modèle
class Order < ActiveRecord::Base
def transfer
active= get_active_gateway(self.cart)
end
end
Il en jetant erreur undefined local variable get_active_gateway
.
J'ai donc écrit
class Order < ActiveRecord::Base
def transfer
active= ApplicationContoller.helpers.get_active_gateway(self.cart)
end
end
Puis il jetait des error undefined method nil for Nilclass
.
Je suis en train de travailler dans les Rails 3.2.0.
source d'informationauteur Beena Shetty
Vous devez vous connecter pour publier un commentaire.
Pourquoi auriez-vous besoin d'une telle chose? Le modèle ne doit pas savoir à propos de ses contrôleurs. Peut-être une refonte de votre système sera plus approprié dans ce cas.
Voici un lien similaire fil.
Comme un choix de conception, il n'est pas recommandé d'appeler le contrôleur des aides de vos modèles.
Vous pouvez simplement transmettre les informations nécessaires à votre modèle des méthodes comme arguments.