我是ROR和炼油厂的新手。所以我一直在理解语法。你能否告诉我区别:
class X < Refinery::AdminController
和
class X < ::Refinery::AdminController
答案 0 :(得分:4)
如果您的类是在模块内定义的(例如,命名空间),则类定义开头的::
告诉Rails在基础上查找模块(没有命名空间)。作为一个更具体的例子,如果你有一个如下定义的类:
module Foo
class MyController < Refinery::AdminController
end
end
Rails会尝试在Foo模块中找到Refinery::AdminController
。但是,如果您使用以下格式定义类:
module Foo
class MyController < ::Refinery::AdminController
end
end
Rails只会在基级而非Refinery::AdminController
内查找Foo
。