Docs header transparent bg

Rubyバージョンの指定

開発者は、gemと同様に、Rubyの依存関係を設定できます。これにより、Ruby VMの特定のフィーチャーに依存している場合、より迅速にアプリでエラーが発生します。こうすることで、デプロイメントサーバーのRuby VMがローカルのRuby VMと一致します。Gemfilerubyディレクティブを使用することで可能です

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でこのドキュメントを編集するは、エラーが発生した場合や不足しているものがある場合にご利用ください。