![](/img/trans.png)
[英]Different ruby versions by environment in a Gemfile for rails application
[英]Specify different Ruby versions (e.g. 1.9.3 vs 2.1) in Gemfile for Windows and Linux/OS X?
我在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級別上對此進行解析。
Gemfile是用Ruby實現的DSL,因此您可以在這里調用Ruby代碼:
ruby RUBY_PLATFROM =~ /win/ ? '1.9.2' : '2.1.0'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.