2010-02-11 36 views
4

我有一个模型。我想在这个模型中导入一个模块。 这个模块中,我想插入validates_presence_of为导入validates_presence_of在模块中

我想知道是否和如何可以做这样的事情的车型:

class Ele < ActiveRecord::Base 
    include Mod 
end 

module Mod 
    validates_presence_of  :field 
end 

感谢

回答

2

在app /模型/ awesome_model.rb

class AwesomeModel < ActiveRecord::Base 

inlude ModuleName 

end 

中的lib/module_name.rb

require 'active_record' 

module ModuleName 
    def self.included(base_class) 
    base_class.class_eval do 

     include ModuleName::InstanceMethods 

     belongs_to :some_model 
     before_save :some_method 
     .... validations, etc.... 



    end 
    end 

    module InstanceMethods 

    def some_method 
     .... 
    end 

    end 
end 

希望帮助!

6

可以使用self.included钩。

class Ele < ActiveRecord::Base 
    include Mod 
end 

module Mod 
    def self.included(base) 
    base.class_eval do 
     validates_presence_of :field 
    end 
    end 
end