看 ruby-china 源码时看到在 app/controllers/cpanel/application_controller.rb 种这样定义一个类:
class Cpanel::ApplicationController < ApplicationController
...
end
在类名中直接加入了双冒号 是不是就等于下面的代码
module Cpanel
class ApplicationController < ApplicationController
...
end
end
还是说 Cpanel::ApplicationController
单纯只是个完整的类名?
等同于
module Cpanel
class ApplicationController < ApplicationController
end
end
#7 楼 @newnewnew 那本书讲的太简单了,建议学习《Ruby Programming——向 Ruby 之父学程序设计》这本书
区别在于 如果 Cpanel 不存在
class Cpanel::ApplicationController < ApplicationController
这个会出错
而
module Cpanel
class ApplicationController < ApplicationController
不会
前者在 rails 环境中,对文件路径有约定,必须是 cpanel/application_controoler.rb,后者无所谓,适合做补丁的场景。