2010-11-18 52 views
2

我知道我可以給模型添加新的方法,但我似乎無法覆蓋現有的方法。下面是我有如何從Ruby中的模塊覆蓋現有的實例方法?

在我User.rb

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

在我的模塊

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) 

我希望發生的是在插件的方法來覆蓋模型中的方法。任何想法或參考將是偉大的,似乎無法找到一個很好的參考。

謝謝!

J

回答