Одно из применений каталога 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)