我正在使用Ruby on Rails项目,我们有Windows和Linux计算机。该项目使用Ruby 2.1,但作为一个Windows开发人员,我需要使用较低版本的Ruby,如ruby 1.9.3或Ruby 2.0,以便顺利地进行本地开发工作。
因此,为了自动为我的Rails项目实现自定义Ruby版本,我尝试修改Gemfile以为每个平台隔离不同的Gems和Ruby版本:
platforms :ruby do # linux & Mac only
ruby '2.1.0' #doesn't work, still tries to load ruby 1.9.3
gem 'puma', '~> 2.7.1' #works
end
platforms :mswin do #Windows only
ruby '1.9.3' #doesn't work, overrides Linux/mac users to Ruby 1.9.3 rather than 2.1
gem 'thin' # works
end
platforms :ruby
或platforms :mswin
显然仅适用于指定Gems,而不适用于指定Ruby版本。如何设置我的本地Windows开发环境,以便我可以在同一个Gemfile中自动处理较低/不同的Ruby版本,而不会影响我的同事?
.rubyversion
读取2.1.0
虽然我可以.gitignore
为每个环境指定此文件,但Heroku要求我们在Gemfile中指定一个Ruby版本 - 所以我们需要一些方法来解决这是在Gemfile级别。
答案 0 :(得分:0)
Gemfile是用Ruby实现的DSL,所以你可以在这里调用Ruby代码:
ruby RUBY_PLATFROM =~ /win/ ? '1.9.2' : '2.1.0'