2014-02-26 48 views
1

我想利用heroku功能,按照https://blog.heroku.com/archives/2012/5/9/multiple_ruby_version_support_on_heroku,在Gemfile中指定我的Ruby版本。但是,雖然我想在heroku上運行JRuby,但我希望能夠在CRuby上進行一些開發。問題是,我得到以下投訴每當我嘗試當我.ruby-version文件中的紅寶石規格從什麼是在Gemfile中不同運行任何東西:Gemfile中的有條件的紅寶石平臺規範

Your Ruby engine is ruby, but your Gemfile specified jruby 

有什麼辦法,我能避免這個問題,而不必在CRuby中修改我的Gemfile?特別是,我可以讓Gemfile中的ruby規範有條件地使這個投訴在開發中消失​​,但它仍然會對heroku生效(並且不會混淆travis)。

我試圖寶石規範約束生產組:

group :production do 
    ruby ruby '1.9.3', engine: 'jruby', engine_version: '1.7.9' 
end 

但在發展中沒有任何影響。

更新:在意識到的Gemfile「只是紅寶石」,我插入的基礎上,我看到一個環境變量的存在,標準紅寶石if聲明可在Heroku上而不是在其他地方(即DYNO),但我d仍然對是否有辦法做到這一點更主線感興趣。

回答

0

嘗試類似:

#ruby=1.9.3 
source 'https://rubygems.org' 
if ENV["JRUBY"] || RUBY_PLATFORM == "java" 
# https://devcenter.heroku.com/articles/ruby-support#ruby-versions 
ruby '1.9.3', engine: 'jruby', engine_version: '1.7.10' 
else 
ruby '1.9.3' 
end 

注:第一個註釋是RVM,因爲它可以解析紅寶石聲明

時感到困惑