Просто из любопытства... в моем предыдущем посте Движок Rails3.1: не удается заставить SLIM или HAML работать в тестовом/фиктивном приложении Я спросил, где сказать Ruby, чтобы он использовал какой-то драгоценный камень в моем test/dummy
приложении.
(Очевидный?) Ответ заключался в том, чтобы просто поместить его в Gemfile моего движка. Это работает, но мне немного неудобно, потому что в сообщении Иегуды Каца Уточнение ролей .gemspec и Gemfile он упоминает, что...
... при разработке гема Gemfile "Gemfile гема должен содержать исходный код Rubygems и одну строку gemspec".
С другой стороны, в Gemfile моего движка (который был сгенерирован с использованием Rails rails plugin new my_engine
) есть:
# jquery-rails is used by the dummy application
gem "jquery-rails"
Так что это кажется правильным. Обновление: нет! Посмотрите на мой ответ ниже...
Тем не менее, где-то еще на StackOverflow Я вижу, что решение для этого просто требует необходимого драгоценного камня в config/application.rb
, а https://stackoverflow.com/questions/5159607/rails-engine-gems-dependencies-how-to-load-them- в приложении сказано, что лучше всего помещать его в lib/<your_engine>/engine.rb file
.
И вот моя мысль: почему приложение test/dummy
просто автоматически не требует все драгоценные камни, указанные в файле .gemspec
? Мы даже сообщаем гему, какие гемы использовать для производства, а какие для режима разработки, явно используя add_dependency
и add_development_dependency
, поэтому я не вижу причин, по которым test/dummy
этого не делает.
Итак, вот последний вопрос: где именно я должен указать Ruby использовать гем в моем приложении test/dummy
? Я НЕ ХОЧУ ЗАСТАВЛЯТЬ РУБИ ИСПОЛЬЗОВАТЬ ДРАГОЦЕННЫЙ КАМЕНЬ ТАКЖЕ В ПРИЛОЖЕНИИ HOST.