質問: Gemfileに書かれるrequire => false とはどういう意味でしょうか? ``` gem 'rspec', :require => false ``` > > :require => falseの指定をすることで、Gemをrequireしないようにしますが、 インストールと依存性の保持は行われます。 > > > と書いてありましたが、よく分かりません。どういうことでしょうか Gemをrequire する/しない の違いとは何でしょうか? Gemfileについて | Bundler日本語ドキュメント | Ruby STUDIO
回答: `Bundler.require`を使うと、個別に`require 'hoge'`を書かなくても、Gemfileに書かれたgemを一括でrequireすることができます。このとき、`:require => false`が指定されたgemは対象から除外されます。 Gemfileが ``` gem 'hoge' gem 'fuga', :require => false ``` こうだった場合 ``` Hoge #=> NameError Fuga #=> NameError #--- Bundler.require(:default) Hoge #=> OK Fuga #=> NameError #--- Bundler.require(:default) require 'fuga' Hoge #=> OK Fuga #=> OK ``` Railsアプリのデータを触るバッチスクリプトで、バッチスクリプトでしか使わないgemがあるとしましょう。そのときに、`:require => false`をつけておくと、 ・Railsアプリ本体ではそのgemは呼ばれない ・スクリプトの方では手動でrequireすればよい ということになります。 グループ指定とは軸がちがいます。テストの時にしか使わないgemなどの場合はグループ指定で対応してください。 テスト環境では必要だが本番環境で入らない、というようなgemを環境によってインストールしたりしなかったりするという制御はグループ指定でないとできません。