Gem [已解决] 制作 Gem 包时,在 .gemspec 添加了 add_dependency,可仍然要在 Rails 的 Gemfile 里写上依赖的包,否则不能正常运行?

nine · October 31, 2015 · Last by jjfujj replied at April 21, 2016 · 2764 hits

打了个 gem 包 需要加载 kaminari

如果在 .gemspec 里写上

spec.add_dependency 'kaminari'

bundle install 就可以正常执行了。 但是在项目里仍然需要添加

gem 'kaminari'

否则会提示

undefined method `page' for #<ActiveRecord::Relation []>

求正确的打开方式。

your_gem/lib/your_gem.rb

require 'kaminari'

我猜是这样的,每个项目可能对同一个 library version 的依赖不一,所以还需要根据依赖声明文件 (比如 gemfile)load,而且是根据 version 去 load。

正确的解答在这里:

bundle 命令在 install 的时候,是依据运行命令的当前目录的 gemfile 里面的声明来安装 gem 的。

gemspec 是该 gem 包被使用时候的依赖声明。

5 Floor has deleted
You need to Sign in before reply, if you don't have an account, please Sign up first.