2011-08-04 48 views
1
module Test1 
    module Test2 
    def self.included(base) 
     # Where can I declare constant ? How ? 
     base.extend ClassMethods 
     base.class_eval do 
      # named scopes 
     end 
    end 
    end 
end 

class abc 
    include Test1::Test2 
end 

我可以在哪里声明常量?怎么样 ?如何在模块中写入常量?

回答

6

我不知道我的理解 - 你的意思是这样的:

module Test1 
    module Test2 
    CONSTANT = 5 
    def self.included(base) 
     # Where can I declare constant ? How ? 
     base.extend ClassMethods 
     base.class_eval do 
     # named scopes 
     end 
    end 

    module ClassMethods 
    end 
    end 
end 

class A 
    include Test1::Test2 
end 

puts A::CONSTANT # => 5 
0

在Ruby中,以大写字母开头的变量,被认为是一个常数。因此,您可以使用一个变量Pi = 3.14来声明一个常数值。

+0

不是'开头',而是全部大写 – Tim

+0

@Tim,菜鸟railer是正确的。 Ruby常量* start_with *大写字母。 类实际上是Ruby中的常量。 – olivervbk