2013-02-27 3 views
0

В Ruby Я хочу добавить некоторых помощников в дополнительный модуль и файл. Я буду использовать его на модели уровне, поэтому я поставилВключая модуль в файл против класса (Ruby Mixins): что лучше?

include MyHelper 
class Shop 
    ... 
end 

теперь я понимаю, что это может быть сделано следующим образом:

class Shop 
    include MyHelper 
    ... 
end 

Может кто-нибудь объяснить мне больше о различиях? Является ли вторая версия всегда лучшим выбором?

ответ

1

Разница в том, что в первом случае вы включаете помощника в глобальное пространство имен. Я не могу придумать случай, в котором это хорошая идея.

В последнем случае вы включаете помощника в «пространство имен» класса. Методы (экземпляры), определенные в модуле, теперь доступны для экземпляров класса Shop.

Смежные вопросы