我在rails控制台中,意外输入了字母j
并点击了输入并返回nil
。
rails c
Loading development environment (Rails 3.2.13)
[6] pry(main)> j
=> nil
[1] pry(main)> j.nil?
=> true
谷歌没让我到任何地方。有人知道这个神秘的j
是什么,它的目的是什么?好奇。
答案 0 :(得分:12)
您始终可以使用source_location
找到给定方法的来源:
method(:j).source_location
甚至它与pry(或method_source
gem)的确切定义:
method(:j).source
结果:
def j(*objs)
objs.each do |obj|
puts JSON::generate(obj, :allow_nan => true, :max_nesting => false)
end
nil
end
j
是一个来自JSON库的方法(将此方法添加到Kernel
模块,因此可以在irb中访问),它负责将给定的参数显示为JSON对象:
j(hello: :world)
#=> {"hello":"world"}
nil
默认情况下,Rails需要json
库,因此它可以立即使用。在纯IRB中,您需要require 'json'
才能访问它。
它接受任意数量的参数,因此j
返回nil而不打印任何内容。它等同于p
方法,只使用json而不是inspect
结果。