У меня есть приложение Rails 3, которое я превращаю в Rails engine/gem. Этот движок имеет некоторые зависимости от gem, которые я вложил в него .gemspec.
Я создал новое "родительское" приложение Rails 3, и я хотел бы добавить свой жемчуг в Gemfile и автоматически загружать зависимости gem автоматически, но это не работает для меня! bundle install
устанавливает корректные зависимости gem, но когда я запускаю сервер, приложение выходит из строя, потому что оно не загружено.
Например, мой код gemspec содержит следующие строки:
s.add_runtime_dependency(%q<rails>, ["= 3.0.7"])
s.add_runtime_dependency(%q<acts_as_commentable>, [">= 3.0.1"])
s.add_runtime_dependency(%q<haml>, [">= 3.1.1"])
.. и родительское приложение Rails 3 имеет эти строки в своем Gemfile:
source 'http://rubygems.org'
gem 'my_engine', :path => "~/src/gems/my_engine"
Но я получаю следующую ошибку:
undefined local variable or method `acts_as_commentable'
from /home/user/src/gems/my_engine/app/models/account.rb:66:in `<class:Account>'
Но если я добавлю gem 'acts_as_commentable', '>= 3.0.1'
в Gemfile родительского Rails 3, то жемчуг будет загружен и ошибка исчезнет.
Я использую Rails 3.0.8.
Есть ли у кого-нибудь предложения? Нужно ли мне что-то менять в отношении загрузки моего двигателя?