Каталог Rails lib - PullRequest
       10

Каталог Rails lib

27 голосов
/ 12 октября 2011

Вопрос по каталогу lib.

Каковы хорошие практики использования каталога lib?
Когда его следует использовать поверх приложения / моделей или приложения / помощников?
И как-то связано, как заставить Rails 3 включать файлы из каталога lib?

Спасибо

1 Ответ

26 голосов
/ 12 октября 2011

Одно из применений каталога lib (как я его чаще всего использую) - это обмен кодами между моделями, чтобы оставаться сухим. Например, если вы определяете атрибут tag_tokens во многих различных моделях для использования со входом токенизатора, вы можете поместить его в «tag_accessor.rb» или что-то еще, поместить в /lib ', а затем включить его с include TagAccessor. Файл ruby ​​может выглядеть так:

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)
...