Как мне удобно сделать некоторый код доступным в приложении Rails? - PullRequest
1 голос
/ 15 ноября 2010

Я хочу добавить библиотеку, которую я написал, в приложение Rails (и в другие приложения Rails позже).Я попытался поместить его в /lib, что казалось логичным ...

[RAILS_ROOT]/lib/my_lib/the_main_file.rb
[RAILS_ROOT]/lib/my_lib/some_other_file.rb

Затем ...

require 'my_lib/the_main_file'

Это прекрасно работает.

Но разве этоотличный способ сделать это?

Теперь я должен поместить это require везде, где я хочу вызывать библиотеку.

Я думал о том, чтобы поместить require в инициализатор, но это выглядит какстранно.

Что люди обычно делают с этим?

Ответы [ 3 ]

1 голос
/ 16 ноября 2010

Использование инициализатора может показаться странным, если у вас есть один файл, который нужно включить, но иногда у меня есть много файлов, которые я хочу добавить, и в итоге я использую инициализатор, который включает только вещи.Это на самом деле довольно аккуратно.

1 голос
/ 15 ноября 2010

Я не уверен насчет "лучших практик" (тм) или чего-то еще, но мы делаем то же самое для нашего проекта. Библиотека находится в lib, а require в инициализаторе (app_config.rb в нашем случае). Это похоже на хороший способ сделать что-то, и до сих пор нас не укусило в задницу :) Надеюсь, это поможет.

0 голосов
/ 16 ноября 2010

Я обычно заворачиваю свои вещи на занятиях.Если вы добавите config.autoload_paths += %W(#{config.root}/lib) к вашему application.rb, то любая ссылка на отсутствующую константу приведет к попытке ее автозагрузки, т.е. простое использование MyClass.new заставит его попытаться загрузить `lib / my_class.rb '.

Взгляните на Лучший способ загрузить модуль / класс из папки lib в Rails 3?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...