gpt4 book ai didi

ruby-on-rails - 为什么在不使用 bundler 组的情况下使用 pry?

转载 作者:数据小太阳 更新时间:2023-10-29 08:52:06 24 4
gpt4 key购买 nike

我正在尝试拥有一个仅限控制台的 bundler 组,如 this article 中所述.为了确保事情按预期发生,我都注释掉了 application.rb 中的控制台组加载代码,并将 bundler 组重命名为 :consoleX。令我惊讶的是,当我启动 Rails 控制台时,pry 仍在加载。

group :consoleX do
gem 'pry'
gem 'pry-doc'
gem 'awesome_print'
end
➔ bundle exec rails consoleLoading development environment (Rails 3.2.3)[1] pry(main)> 

如果我完全注释掉该组,则不会加载 pry。

这是怎么回事?

最佳答案

因为默认情况下,bundle 将包含所有组中的所有 gem。在没有特定组运行的情况下进行 bundle :

bundle install --without group_name

此设置将被记住,直到您更改它,因此以后对 bundle install 或 update 的任何调用都将在没有排除组的情况下运行。查看 bundler docs .

如果您按照 Pry wiki 中的说明使用 Pry 代替 IRB这意味着如果 Pry 可用,将使用它,只有在不可用时才使用 IRB。因此,当您在 bundle 中使用 Pry 运行控制台时,即使您请求一个您不希望它包含的环境,它也会被调用。

要解决此问题,它必须不在您的包中,然后当您运行 bundle exec rails console 时,您可以改用 irb。

如果您想更轻松地在 Pry 和 IRB 之间来回切换,我建议不要通过 monkeypatching Rails 来使用 IRB 而不是 Pry。只需将 Pry 留在您想要的组中并正常 bundle (pry 在 bundle 中),当您想将 Pry 用作 rails 控制台时调用 pry -r ./config/environment。查看Railscast举个例子。

关于ruby-on-rails - 为什么在不使用 bundler 组的情况下使用 pry?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10270609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com