2010-11-18 6 views
2

Je sais que je peux ajouter de nouvelles méthodes aux modèles mais je ne peux pas sembler écraser une méthode existante. Voici ce que j'aiComment remplacer une méthode d'instance existante d'un module dans Ruby?

Dans mon User.rb

include ExtraMethods 
def is_invisible? 
    true unless self.active? 
end 

Dans mon module

module ExtraMethods 
    def self.included(base) 
    base.extend(ClassMethods) 
    end 

    module ClassMethods 
    def user_extra_methods 
     include ExtraMethods::InstanceMethods 
    end 
    end 
    module InstanceMethods 
    def is_invisible? 
     true unless self.active? || self.admin? 
    end 
    end 
end 

ActiveRecord::Base.send(:include, ExtraMethods) 
User.send(:user_extra_methods) 

Ce que je veux arriver est la méthode dans le plug-in pour remplacer la méthode dans le modèle. Toutes les pensées ou références seraient grandes, ne peuvent pas sembler trouver une bonne référence pour ceci.

merci!

J

Répondre

Questions connexes