我正在开发一个Ruby gem,如何在我的Rails应用程序本地试用它?

时间:2015-07-07 23:46:51

标签: ruby-on-rails ruby gem

我正在开发一个与Rails项目一起使用的gem,并想在本地尝试使用我的另一个Rails应用程序。

我用bundle exec rake release构建了一个gem,它将.gem文件放在/ pkg目录中。

然后,在我的Rails应用程序中,我将以下内容添加到我的gemfile

gem 'mygem', '0.1.1', path: '/Users/me/projects/mygem/ruby/pkg'

然后我跑了bundle install说它安装了宝石。当我这样做时,它会从路径中删除宝石。 IDK去了哪里。

当我启动Rails应用程序时,它就像宝石一样不包括在内。

有趣的是,如果我添加一个甚至不存在的版本,它仍然说bundle install工作正常。 (例如:gem 'mygem', '0.1.2345', path: '/Users/me/projects/mygem/ruby/pkg'

我应该如何使用Rails应用程序在本地试用我的Gem?

这个问题与How can I specify a local gem in my Gemfile?不同,因为我明确告诉我的Gemfile中的bundle使用本地gem,并给出了路径,但它仍然不起作用。当我运行bundle install时,它说

Using mygem 0.1.1 from source at /Users/me/projects/mygem/pkg

所以你认为它运作正常,但它仍然没有。

有趣的是,如果我尝试使用不存在的版本号,例如mygem 1.2.3,它仍然会成功运行bundle install,这非常奇怪,看起来像一个bug:

Using mygem 1.2.3 (was 0.1.1) from source at /Users/me/projects/mygem/pkg

1 个答案:

答案 0 :(得分:2)

在使用Rails项目并行处理本地gem时,我更喜欢使用以下内容:

gem 'foo',
  :git => '/path/to/local/git/repo',
  :branch => 'my-fancy-feature-branch'