У меня есть приложение Rails 3, которое я превращаю в движок / гем Rails. У этого движка есть некоторые зависимости гема, которые я поместил в его .gemspec файл.
Я создал новое «родительское» приложение Rails 3, и я хотел бы добавить свой гем движка в Gemfile и автоматически получить зависимости гема » загружен ', но у меня это не работает! bundle install
отлично устанавливает зависимости гемов, но когда я запускаю сервер, приложение вылетает, потому что они не загружены.
Например, 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 'plays_as_commentable', '> = 3.0.1'
в Gemfile родительского приложения Rails 3, затем загружается гем и ошибка исчезает.
Я использую Rails 3.0.8.
Есть ли у кого-нибудь предложения? Нужно ли мне что-то менять в способе загрузки моего движка?