代码之家  ›  专栏  ›  技术社区  ›  stevec Zxeenu

如何在rails控制台中禁用寻呼机,以便将整个结果打印到控制台?

  •  1
  • stevec Zxeenu  · 技术社区  · 1 年前

    当在rails控制台中运行ActiveRecord查询时,我看到的结果与屏幕上的结果一样多,然后是 : 并且指示寻呼机正在使用的闪烁光标。

    有没有办法(例如,我可以修改的设置)在整个rails控制台会话中禁用此寻呼机,以便在不使用寻呼机的情况下将显示的所有内容全部打印到rails控制台?

    到目前为止我所知道的

    我尝试在新的rails控制台会话中运行这些:

    IRB.conf[:USE_MULTILINE] = false
    IRB.conf[:PAGER] = false
    
    if defined?(Rails::Console)
      Rails.application.console do
        IRB.conf[:USE_MULTILINE] = false
        IRB.conf[:PAGER] = false
      end
    end
    

    但当我运行ActiveRecord查询,结果不适合屏幕时,它仍然像以前一样调用寻呼机。

    1 回复  |  直到 1 年前
        1
  •  1
  •   Alex    1 年前

    配置为:

    IRB.conf[:USE_PAGER] = false
    

    它看起来没有任何文档,但您可以看到可用的选项:

    >> IRB.conf
    => 
    {:VERSION=>"irb 1.13.1 (2024-05-05)",
     :AP_NAME=>"irb",
     :IRB_NAME=>"irb",
     :IRB_LIB_PATH=>"/home/alex/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.13.1/lib/irb",
     :RC=>true,
     :LOAD_MODULES=>[],
     :IRB_RC=>nil,
     :USE_COLORIZE=>true,
     :USE_AUTOCOMPLETE=>false,
     :COMPLETOR=>:regexp,
     :INSPECT_MODE=>true,
     :USE_TRACER=>false,
     :USE_LOADER=>false,
     :IGNORE_SIGINT=>true,
     :IGNORE_EOF=>false,
     :USE_PAGER=>true,         # <=
    ...
    

    就这些 :USE_PAGER : https://github.com/ruby/irb/pull/783