如何为特定的rails版本使用创建的gem?

时间:2017-09-12 14:17:08

标签: ruby-on-rails ruby rvm bundler

我是ruby on rails的新手,我刚刚安装了我的第一个应用程序。

我为特定的rails版本创建了一个gem(不是针对特定的项目) - 有区别吗?

$ rvm gemset create rails500
  Gemset 'rails500' created.

$ rvm 2.4.1@rails500
$ gem install rails -v 5.0.0

然后我想使用gemset创建一个新应用程序:

$ mkdir blog-app
$ cd blog-app
$ rvm gemset use rails500
  Using ruby-2.4.1 with gemset rails500
$ rails new .

这并没有为我创建.ruby-gemset或.ruby-version文件,但它确实创建了列出rails 5.0.0的Gemfile。 然后我创建了.ruby-gemset& .ruby-version文件:

$ echo "ruby-2.4.1" > .ruby-version
$ echo "rails500" > .ruby-gemset

我试图找出我是否正确地做到了这一点。另外,如果Gemfile中列出了rails5.0.0,是否需要.ruby-gemset文件?

最后,我是rvm和bundler。我应该运行bundler install吗?

1 个答案:

答案 0 :(得分:0)

rails 5.0.0生成器不会自动创建

.ruby-gemset.ruby-version。你正在做什么看起来没问题。

.ruby-version指定您要使用的ruby版本。您可以将其与rvmrbenvchruby一起使用,以指定要在应用程序中使用的Ruby版本。

.ruby-gemset特定于使用rvm。它是使用bundler的替代方法。 bundler和rvm gemsets都实现了维护与系统宝石分离的应用程序依赖关系(" gems")的独立列表的目标。在bundler和rvm gemsets之前,Ruby没有一个很好的解决方案,可以为每个项目提供单独的依赖项。

不要互换使用rvm gemsetsbundler。我建议完全使用其中一个,但不能同时使用同一个项目。 (我应该注意到我对gemsets并不十分了解,所以我的一些信息可能已经过时了。如果我所说的不准确,有人会纠正我。)