我有一个 Rails 3 应用程序,我正在将其变成 Rails 引擎/gem。这个引擎有一些我放在它的 .gemspec 文件中的 gem 依赖项。
我创建了一个新的“父”Rails 3 应用程序,我想将我的引擎 gem 添加到 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'
到父 Rails 3 应用程序的 Gemfile 中,则加载 gem 并且错误消失。
我正在使用 Rails 3.0.8。
有没有人有什么建议?我是否需要更改引擎的加载方式?