Почему в Ruby или Rails «включать» иногда внутри класса, а иногда вне класса?

Я подумал, что

class ApplicationController < ActionController::Base
  include Foo

- это добавление «миксина», чтобы все методы в модуле Foo обрабатывались как методы ApplicationController.

Но теперь я вижу код, который является

include Bar

class ApplicationController < ActionController::Base
  include Foo

Итак почему он находится вне ApplicationController ? Чем это отличается от более распространенного использования, когда его помещают в ApplicationController ?

12
задан nopole 1 March 2011 в 22:56
поделиться