Подпапки в lib - PullRequest
       28

Подпапки в lib

5 голосов
/ 13 февраля 2011

У меня есть модуль с именем user_searches. Он выполняет некоторые поиски, которые не являются ключевыми для модели пользователя, поэтому я возлагаю ответственность куда-то еще. Я хочу организовать все мои модели, подобные этой, которые выполняют неосновные пользовательские функции, в подпапке lib, называемой user. Прямо сейчас, чтобы включить методы модуля в модель User, я должен поставить ...

require 'user/user_searches'

class User < ActiveRecord::Base

  include UserSearches

end

... Мне не нужно require, если файл находится непосредственно в папке lib, но делайте, если он находится в подпапке Что мне нужно сделать, чтобы мне не нужно require ?

Ответы [ 2 ]

3 голосов
/ 13 февраля 2011

Вы можете поместить необходимые строки требований в lib/user.rb таким образом, все требования загружаются рекурсивно при запуске приложения.

Кроме того, вы можете поместить что-то вроде этого в инициализатор:

# put into config/initializers/load_lib.rb
Dir["#{RAILS_ROOT}/lib/**/*.rb"].each { |f| require(f) }

Для этого потребуются все файлы ruby ​​в вашей папке lib. Вы просто должны убедиться, что это действительно то, что вы хотите:)

0 голосов
/ 13 февраля 2011

Это работает, что вызывает

в файле rails-2.2.2 / lib / initializer.rb в методе default_load_paths, инициализированном для загрузки пути только к папке lib без подкаталогов, для решения которой вы можете отредактировать ваш проектФайл конфигурации environment.rb и вставить в массив config.load_path все подкаталоги.

...