首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >::Base部件在ActiveRecord::Base中的含义

::Base部件在ActiveRecord::Base中的含义
EN

Stack Overflow用户
提问于 2008-12-01 12:22:56
回答 3查看 3.3K关注 0票数 9

Person

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-12-01 12:42:13

::Base是模块ActiveRecord中的一个类。模块做的一件事就是在Ruby中提供名称空间。在Ruby中,您不能继承模块,但可以使用include语句将其混合使用。

我可以建议你拿起Pickaxe这本书或者阅读Why's (Poignant) Guide to Ruby吗?

票数 10
EN

Stack Overflow用户

发布于 2008-12-01 12:41:13

在Ruby语言中,::访问静态类或模块常量。ActiveRecord::Base表示ActiveRecord类或模块有一个您正在扩展的名为Base的静态内部类。

编辑:正如迈克所指出的,在这种情况下,ActiveRecord是一个模块……

票数 6
EN

Stack Overflow用户

发布于 2016-08-25 14:14:06

::是一元运算符,它允许您访问在另一个类或模块中定义的常量、模块或类。它用于提供命名空间,这样方法和类名就不会与不同作者的其他类冲突。

当您在Rails中看到ActiveRecord::Base时,这意味着在Rails中,ActiveRecord::Base是这样的

代码语言:javascript
复制
module ActiveRecord
  class Base
  end
end

这意味着一个名为Base的类位于一个模块ActiveRecord中,该模块随后被引用为ActiveRecord::Base

为了更好地理解::运算符,只需通过tutorialspoint.com中的这个示例:

代码语言:javascript
复制
MR_COUNT = 0        # constant defined on main Object class
module Foo
  MR_COUNT = 0
  ::MR_COUNT = 1    # set global count to 1
  MR_COUNT = 2      # set local count to 2
end
puts MR_COUNT       # this is the global constant
puts Foo::MR_COUNT  # this is the local "Foo" constant
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/330666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档