如何在关闭pry的情况下启动rails控制台?

时间:2014-08-05 18:32:25

标签: ruby-on-rails pry

有时我有理由想要将rails控制台作为irb repl而不是pry启动(就像pry一样棒)。它将默认为pry,因为pry在Gemfile中。如何在现在这样做?

我认为在运行rails console时曾经有过--irb选项,但现在似乎已经消失了。我在尝试时收到了弃用错误消息。

更多详情

如果我只是运行“rails console”,它就会让我撬开。

如果我运行“rails console -irb = irb”:

$ rails c -irb=irb                                                                                                                                                                         
--irb option is no longer supported. Invoke `/your/choice/of/ruby script/rails console` instead

从我的Gemfile中解除行:

gem 'rails', '3.2.18'
gem 'pry-rails'
gem 'pry-plus'

4 个答案:

答案 0 :(得分:23)

pry-rails gem设置rails cDISABLE_PRY_RAILS时启动pry。如果您查看描述解决方案的pry-rails问题there is one

将环境变量1定义为DISABLE_PRY_RAILS=1 rails c

所以你可以在没有pry的情况下调用rails console:

{{1}}

答案 1 :(得分:5)

适用于Rails 4:在你的libfoo.so内,在你的应用程序类中,放下这只小狗。

application.rb

我不能再拿Pry控制台了。它在不可预测的时间将光标放在奇怪的地方。我甚至无法描述它,但如果你知道我在说什么并知道解决方案,请告诉我。

答案 2 :(得分:1)

为了遇到同样问题的人的利益,这是我的(糟糕的)解决方法。

我用Gemfile包装了撬宝石:

...
unless ENV['NOPRY']
  gem 'pry-rails'
  gem 'pry-plus'
end
...

然后从unix终端运行:

NOPRY=true bundle install
NOPRY=true rails console

不漂亮,但完成工作......

答案 3 :(得分:1)

受上述答案的启发,我将以下内容添加到application.rb中的类定义中,以便可以从控制台切换Pry:

console do
  if ENV['IRB']
    require 'irb'
    config.console = IRB
  end
end

然后,您可以运行rails c以获取Pry控制台,然后IRB=true rails c来获取IRB控制台。如果您想要反向,这很容易修改。适用于Rails 4和5。