我正在查看Rails引擎教程,其中一个代码块如下所示:
module Blorgh
class Engine < ::Rails::Engine
isolate_namespace Blorgh
end
end
Run Code Online (Sandbox Code Playgroud)
什么::Rails::Engine意思?我知道这可能是一个微不足道的Ruby问题,但是,我似乎无法在任何地方找到任何东西.
谢谢.
我正在看下面的代码:
module Tag
def sync_taggings_counter
::Tag.find_each do |t|
# block here
end
end
end
Run Code Online (Sandbox Code Playgroud)
而我::Tag对标签模块内部感到困惑.
我知道双冒号用于命名空间类和类/模块中的模块.但我从来没有见过它像上面那样使用过.这究竟是什么意思?
我的模块中有一个名为"Date"的类.但是当我想利用与ruby打包的Date类时,它会使用我的Date类.
module Mymod
class ClassA
class Date < Mymod::ClassA
require 'date'
def initialize
today = Date.today # get today's date from Ruby's Date class
puts "Today's date is #{today.to_s}"
end
end
end
end
Mymod::ClassA::Date.new
Run Code Online (Sandbox Code Playgroud)
运行它的输出是
test.rb:7:in `initialize': undefined method `today' for Mymod::ClassA::Date:Class (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以从我自己的类中引用ruby的Date类,也称为"Date"?
可能重复:
什么是Ruby的双冒号(::)全部?
你能解释一下,::红宝石中的两个点是什么意思吗?
在这个例子中解释我:
AWS::S3::Bucket.find(BUCKET).objects
Run Code Online (Sandbox Code Playgroud)
这是什么ASW,什么是S3,什么是Bucket(我的意思是,类,数据包,对象......)