Appel du Module de la fonction de Contrôleur (NoMethodError)
Donc, j'ai un module "Intermédiaire" je suis capable de l'appeler simplement bien dans les rails de la console, mais dans le contrôleur, je suis un NoMethodError
Dans le contrôleur, j'ai:
class SignUpController < ApplicationController
include MiddleMan
def page_one
@package = MiddleMan::read_catalog("a", "b", "c")
end
end
Et dans l'intermédiaire.rb module que j'ai:
module MiddleMan
def read_catalog(package, payment, coupon)
Package.new(:price => "4.99")
end
end
Toutes les pensées?
OriginalL'auteur Msencenb | 2011-07-06
Vous devez vous connecter pour publier un commentaire.
Depuis que vous avez inclus le module de la méthode d'instance
read_catalog
est ajouté à votre Classe, de sorte que vous pouvez l'appeler directement:Comme une note de côté, si vous voulez appeler des méthodes à partir d'un module directement, sans les mélanger, vous avez besoin de les définir comme
def self.method_name
de sorte qu'ils sont liés à l'instance de module lui-même. Un autre (impair) astuce ici est de rendre le module s'étendre. Vous n'utilisez pas le::
syntaxe bien, il vous suffit d'utiliser un point.OriginalL'auteur Wizard of Ogz