Автозагрузка Rails 3

У меня есть class ConstData:

class ConstData US_CITIES = ['miami', 'new york'] EUROPERN_CITIES = ['madrid', 'london'] end 

Его хранится в /lib/const_data.rb

Идея заключается в том, что внутри модели, controllerа или представления я могу сделать:

ConstData::US_CITIES для получения US_CITIES и т. Д.

Rails должен автоматически загрузить этот class, я получил это от: http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/662abfd1df9b2612?hl=ru

Однако это не сработает. Может ли кто-нибудь объяснить мне, как это сделать?

Сообщение @ daniel относится к версии с 2008 года. Rails изменилась с тех пор.
На самом деле, совсем недавно. Rails3 не загружает каталог lib / автоматически.

Вы можете легко его активировать. Откройте config/application.rb И добавьте в config (в classе Application ) следующую команду:

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

Затем ваш lib / dir будет загружен автоматически.

Причина autoload_paths не сработала для вас, и вы были вынуждены делать:

 Dir["lib/**/*.rb"].each do |path| require_dependency path end 

потому что вы забыли пространство имен вашего classа .

lib / awesome / stuffs.rb должен содержать class / модуль следующим образом:

 class/module Awesome::Stuffs .... 

но у вас было:

 class/module Stuffs .... 

Rails может выполнять автозагрузку classов и модhive, имя которых соответствует пути к файлу и имени файла.

🙂

config.autoload_paths не работает для меня. Я решил это, поставив следующее в ApplicationController :

 Dir["lib/**/*.rb"].each do |path| require_dependency path end 

Следуйте за решением для автоматической загрузки lib:

Удалите config.threadsafe! от development.rb и production.rb ;

Добавить в config/application.rb :

 config.autoload_paths += %W(#{config.root}/lib) config.threadsafe! config.dependency_loading = true 
  • Как проверить заголовок страницы с Capybara 2.0?
  • Как attr_accessible используется в Rails 4?
  • Как исправить неинициализированную постоянную проблему Rake :: DSL на Heroku?
  • Запрос ActiveRecord OR
  • найти vs find_by vs где
  • разработать и несколько «пользовательских» моделей
  • Где разместить глобальные переменные в Rails 3
  • Как вы справляетесь со вспышкой Rail с запросами Ajax?
  • Rails - Как использовать помощника внутри controllerа
  • Rails: fields_for с индексом?
  • Rails 3.1 и Image Assets
  • Давайте будем гением компьютера.