Docs header transparent bg

指定 Ruby 版本

與寶石類似,開發人員可以設定對 Ruby 的依賴性。這樣可以讓您的應用程式在依賴 Ruby VM 中的特定功能時更快地發生錯誤。這樣,部署伺服器上的 Ruby VM 將會與您的本機 Ruby VM 相符。您可以使用 Gemfile 中的 ruby 指令來執行此操作

ruby 'RUBY_VERSION', :engine => 'ENGINE', :engine_version => 'ENGINE_VERSION',
:patchlevel => 'RUBY_PATCHLEVEL'

如果您想使用 Ruby 1.9.3 使用 JRuby 1.6.7,您只需執行下列操作

ruby '1.9.3', :engine => 'jruby', :engine_version => '1.6.7'

也可以透過執行下列操作來限制 Ruby 修補程式等級

ruby '1.9.3', :patchlevel => '448'

如果您希望從版本檔案 (例如 .ruby-version) 中衍生您的 Ruby 版本,您可以改用 file 選項。

ruby file: ".ruby-version"

版本檔案應符合下列任何格式

Bundler 會針對目前執行的 Ruby VM 進行檢查,以確保它與 Gemfile 中指定的內容相符。如果兩者不符,Bundler 會引發一個例外狀況,說明不符的部分。

Your Ruby version is 1.8.7, but your Gemfile specified 1.9.3

:engine:engine_version 都是選用的。當省略這些選項時,表示應用程式與特定 Ruby ABI 相容,但引擎無關緊要。當使用 :engine 時,也必須指定 :engine_version。使用帶有 --ruby 旗標的 platform 指令,您可以看到 Gemfile 中指定的 ruby 指令為何。

ruby 1.9.3 (jruby 1.6.7)

了解更多:bundle platform

ruby 指令中,:patchlevel 是選用的,因為修補程式版本通常相容,且包含重要的安全性修正。patchlevel 選項會檢查 RUBY_PATCHLEVEL 常數,如果未指定,Bundler 會直接忽略它。指定 Ruby 版本的版本運算子也可用。支援的版本運算子集與 Rubygems (gem 版本運算子) 相同。(例如 <><=>=~>=)

ruby '~> 2.3.0'

了解更多:版本運算子

如果您發現錯誤或發現有遺漏之處,請在 GitHub 上編輯此文件