Вопрос по каталогу lib.
Каковы хорошие практики использования каталога lib?
Когда его следует использовать поверх app / models или app / helpers?
И несколько связанное с этим, как заставить Rails 3 включать файлы из каталога lib?
Спасибо
Вопрос по каталогу lib.
Каковы хорошие практики использования каталога lib?
Когда его следует использовать поверх app / models или app / helpers?
И несколько связанное с этим, как заставить Rails 3 включать файлы из каталога lib?
Спасибо
Одно из применений каталога lib (как я использую его чаще всего) - это совместное использование кода между моделями, чтобы он оставался СУХИМ. Например, если вы определяете атрибут tag_tokens
во многих разных моделях для использования с входом токенизатора, вы можете поместить его в «tag_accessor.rb» или что-то в этом роде, поместить его в /lib
', а затем включить его с include TagAccessor
. Рубиновый файл может выглядеть так:
module TagAccessor
def tag_tokens
tags.map(&:name).join(',')
end
def tag_tokens=(names)
self.tag_ids = names.split(",").uniq
end
end
(Это пример из одного из моих приложений, поэтому он такой специфичный). Затем, чтобы загрузить папку / lib в Rails 3, поместите это в свой application.rb
:
config.autoload_paths += %W(#{config.root}/lib)