Каталог библиотек Rails

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

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

Спасибо


person GTDev    schedule 12.10.2011    source источник


Ответы (1)


Одно из применений каталога 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)
person bricker    schedule 12.10.2011
comment
привет @bricker, скажем, мне нужно написать налоговый калькулятор, не лучше ли поместить задачи, связанные с расчетом налогов, в папку / lib, например /lib/damp_tax/tax_calculator.rb, а содержимое в tax_calculator.rb как модуль DampTax; class TaxCalculator; конец; конец; - person codemilan; 05.01.2018