Можете ли вы рассказать мне, как константы инициализируются в Gem, загруженном в Rails? - PullRequest
0 голосов
/ 01 ноября 2011

Мне интересно, как процесс инициализации работает с Gems. По сути, сегодня я столкнулся с проблемой, когда пытался вызвать константу, которая живет в моем приложении Rails из Gem, который я включил в мой проект rails.

Константа - Air :: Fly

Константа прекрасно загружается из Rails, но Gem не может загрузить эту константу. Моей целью было расширить класс Rails Application из контекста Gem, чтобы сделать мой код более модульным.

Как я могу загрузить класс приложения rails из Gem?

1 Ответ

2 голосов
/ 02 ноября 2011

Bundler разрешает зависимости gems, проверяя файл gemspec на наличие зависимостей во время выполнения. Если gemspec для драгоценного камня X имеет add_runtime_dependency "Y", тогда драгоценный камень Y будет загружен до драгоценного камня X.

Итак, если предположить, что Air - это драгоценный камень, в вашем случае вам нужно добавить в свой gemspec:

s.add_runtime_dependency "air"

Это обеспечит возможность его использования в вашем собственном камне;)

...