这三个方法都属于Module类的方法。
示例代码如下。其中Permission是个Model类。
module Perm
require "permission"
# lazy load consts
def self.const_missing(name)
if @perms.nil?
@perms = Permission.find(:all).map{|p|p.name}
@perms.each do |perm|
Perm.const_set( perm.gsub(/\./,'_').upcase , perm)
end
end
return nil if !const_defined?(name)
Perm.const_get(name)
end
end
没有评论:
发表评论