rails используя файл в папке lib - rails 2.3.5 - PullRequest
0 голосов
/ 04 июня 2011

Обычно я помещаю файлы в папку rails lib, и они, похоже, загружаются автоматически.

Я недавно пытался поместить этот файл: https://gist.github.com/85632 в мою папку lib.

Из одной из моих моделей, когда я пытаюсь сделать:

 ftp = Net::FTPS::Implicit::new(

я получаю:

NameError: uninitialized constant Net::FTPS
    from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:440:in `load_missing_constant'
    from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:80:in `const_missing'
    from /Users/jnylund/Projects/aras/app/models/notifier.rb:372:in `send_ftp_file'

Я заставил его работать, добавив: require 'ftps_implicit'

к началу файла моей модели.

Почему в этом случае мне нужно было сделать это?Это правильный способ ведения дел?

спасибо Джоэл

Ответы [ 2 ]

1 голос
/ 04 июня 2011

Rails 2 загрузит файлы по соглашению. Поэтому, когда вы запрашиваете:

Net::FTPS::Implicit::new

... он будет искать файл:

lib/net/ftps/implicit

... чтобы определить этот класс.

Я не думаю, что Rails 2 фактически загружает все в папку lib - он ищет там только файл, когда что-то запрашивается.

0 голосов
/ 04 июня 2011

Rails 3 больше не загружает каталог ./lib автоматически.Если вы хотите снова активировать это поведение в Rails 3, добавьте следующую строку в конфигурацию вашего приложения:

config.autoload_paths += %W(#{config.root}/lib)

Это также репост этого вопроса здесь .

...