Какой шаблон является классом SomeClass :: OtherClass? - PullRequest
0 голосов
/ 09 февраля 2012

Например

class Spree::UsersController < Spree::BaseController
  #...
end

Я не могу найти, как называется этот шаблон class :: otherclass.

1 Ответ

2 голосов
/ 09 февраля 2012

Это не «шаблон»; он просто указывает, в каком модуле (или классе) содержится данный класс.

module SomeModule
  class SomeClass
  end
end

SomeModule::SomeClass  # => SomeModule::SomeClass

Это позволяет вам именовать пространство ваших классов, а не помещать их все в глобальное пространство имен. Вы можете сделать вложение настолько глубоким, насколько пожелаете:

module A
  class B
    module C
      class D
      end
    end
  end
end

Многие (возможно, даже большинство) гемов используют этот вид иерархического вложения для организации своих классов и модулей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...