2

この記事で説明されているように、コンソールのみのバンドラー グループを作成しようとしています。期待どおりに動作していることを確認するために、application.rb の console-group-loading コードをコメントアウトし、バンドラー グループの名前を に変更しました:consoleX。驚いたことに、Rails コンソールを起動しても pry はまだロードされています。

group :consoleX do
  gem 'pry'
  gem 'pry-doc'
  gem 'awesome_print'
end
➔ bundle exec rails console
開発環境のロード (Rails 3.2.3)
[1]こじる(メイン)>

グループを完全にコメントアウトすると、pry が読み込まれません。

何が起きてる?

4

1 に答える 1

3

デフォルトでは、バンドルにはすべてのグループのすべての gem が含まれるためです。特定のグループを実行せずにバンドルするには:

bundle install --without group_name

この設定は、変更するまで記憶されるため、バンドルのインストールまたは更新に対する今後の呼び出しは、除外されたグループなしで実行されます。バンドラーのドキュメントを参照してください。

Pry wikiの指示に従って IRB の代わりに Pry を使用している場合、Pry が使用できる場合は Pry が使用され、使用できない場合は IRB のみが使用されます。そのため、バンドル内の Pry を使用してコンソールを実行すると、それを含めたくない環境を要求した場合でも呼び出されます。

これを修正するには、バンドルに含まれていない必要があり、実行時にbundle exec rails console代わりに irb を使用できます。

Pry と IRB を簡単に切り替えたい場合は、Pry の代わりに IRB を使用するように Rails にモンキーパッチを適用しないことをお勧めします。Pry を必要なグループに残して、通常はバンドルします (pry はバンドル内にあります)。Pry を Rails コンソール呼び出しとして使用する場合は、pry -r ./config/environment. 例については、 Railscastを参照してください。

于 2012-04-22T18:18:27.337 に答える