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

nine · 2015年10月31日 · 最后由 jjfujj 回复于 2016年04月21日 · 2117 次阅读

打了个 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楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册