格式化Rails控制台输出

时间:2012-09-26 18:28:52

标签: ruby-on-rails ruby console formatting

我正在使用Rails中的控制台来检查一些对象,如下所示:

dc = DependencyCondition.new
# => #<DependencyCondition id: nil, dependency_id: nil, rule_key: nil, question_id: nil, operator: nil, answer_id: nil, datetime_value: nil, integer_value: nil, float_value: nil, unit: nil, text_value: nil, string_value: nil, response_other: nil, created_at: nil, updated_at: nil>

我发现此输出难以阅读和检查,尤其是对于多个对象。如果输出结果如下,我会很高兴:

# => #<DependencyCondition id: nil, 
       dependency_id: nil, rule_key: nil, 
       question_id: nil, 
       operator: nil, 
       answer_id: nil, 
       datetime_value: nil, 
       integer_value: nil, 
       float_value: nil, 
       unit: nil, 
       text_value: nil, 
       string_value: nil, 
       response_other: nil, 
       created_at: nil, 
       updated_at: nil>

有没有一种简单的方法可以达到这个目标,或者我应该已经知道我不知道的事情?

4 个答案:

答案 0 :(得分:3)

安装名为hirb的宝石。您可以通过命令安装此gem:

gem install 'hirb'

然后启动您的rails console并输入以下命令

> require 'hirb'

> Hirb.enable

完成。您的输出将采用格式化方式。

答案 1 :(得分:1)

你可以使用pry,它是irb的一个很好的替代品,它在下面列出的RailsCast中展示了很多很棒的功能。

RailsCast #280: Pry with Rails Pry是IRB的替代品,具有许多出色的功能。在这里,我将展示如何将其集成到Rails应用程序中,以及它如何帮助调试。

输出并不完全符合您的要求,但我发现它比irb中的输出更具可读性。

答案 2 :(得分:0)

尝试yaml输出:

ActiveAdmin.register Transaction do belongs_to :account ... end

如果您在y dc = DependencyCondition.new

上收到NoMethodError,则可能还需要require 'yaml'

答案 3 :(得分:0)

如果使用Pry-根据接受的答案的建议-you can also choose your own output format

  

永久(在.pryrc文件中):

     

Pry.config.print = proc { |output, value| output.puts "=> #{value.inspect}" }

     

临时(在repl会话中):

     

_pry_.config.print = proc { |output,value| output.puts "=> #{value.inspect}" }