2014-01-31 2 views
0

У меня есть модуль, который я хочу назвать OAuth и класс внутри него, называемый AccessToken. Обычно в рельсах я хотел бы поместить его в app/models/o_auth/access_token.rb. Как я могу загрузить его с пути app/models/oauth/access_token.rb?Класс загрузки Rails с нетрадиционным именем папки

+0

Все, что находится в папке 'app', будет автоматически загружаться – usha

+0

Сортировка. Rails проверяет, загружен ли OAuth, и когда он обнаруживает, что это не так, он ищет папку o_auth, которая не является тем, что я называю ей – chris

ответ

0

Я думаю, что мой вопрос был слишком тонким. Я спрашивал, как загрузить мой класс из этого конкретного пути, а не как добавить путь к пути автозагрузки в целом. Моя проблема заключалась в том, что, поскольку мой класс OAuth начинается с двух заглавных букв, рельсы ожидают путь o_auth, как и все, где вы можете ссылаться на него как на символ. Из-за всех переопределений вам нужно будет сделать, чтобы ссылки на символы oauth указывали на класс OAuth, кажется, что лучше просто назвать папку o_auth вместо oauth.

0

Добавить require 'app/models/o_auth/access_token' наверху application.rb и в верхней части любой другой модели, использующей его. Это то, что вам нужно было бы сделать для каждой модели, без идеальной конфигурации «соглашение по конфигурации» RoR и ее волшебного импортера.

+0

Я предполагаю, что «app/models/oauth/access_token» даст мне результат Я хочу? – chris

0

Добавьте эти строки в config/application.rb

# Load Subfolder Models 
config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')] 
Смежные вопросы