Ruby on rails 如何查看会话数据对象的可读版本

Ruby on rails 如何查看会话数据对象的可读版本,ruby-on-rails,ruby,Ruby On Rails,Ruby,我试图从会话数据对象中获取域名,但该对象非常庞大且密集 数据样本 #<ActionDispatch::Request::Session::Options:0x007f982c42b988 @by=# <ActionDispatch::Session::CookieStore:0x007f982e03d798 @app=# <ActionDispatch::Flash:0x007f982e03d7e8 @app=# <ActionDispatch::ParamsParser

我试图从会话数据对象中获取域名,但该对象非常庞大且密集

数据样本

#<ActionDispatch::Request::Session::Options:0x007f982c42b988 @by=#
<ActionDispatch::Session::CookieStore:0x007f982e03d798 @app=#
<ActionDispatch::Flash:0x007f982e03d7e8 @app=#
<ActionDispatch::ParamsParser:0x007f982e03d9a0 @app=#
<Rack::Head:0x007f982e03d9f0 @app=#<Rack::ConditionalGet:0x007f982e03da40 
@app=#<Rack::ETag:0x007f982e03da68 @app=#<OmniAuth::Builder:0x007f982e03e4b8 
@options=nil, @warmup=nil, @run=#
<ActionDispatch::Routing::RouteSet:0x007f982c4325f8>, @map=nil, @use=[#
<Proc:0x007f982e03db30@/REMOVED/.rvm/gems/ruby-2.3.1/gems/rack-
1.6.6/lib/rack/builder.rb:86>]>, @cache_control="max-age=0, private, must-
revalidate", @no_cache_control="no-cache">>>, @parsers={#
<Mime::Type:0x007f982dae3270 @synonyms=["text/x-json", 
"application/jsonrequest"], @symbol=:json, @string="application/json", 
@hash=-2179284299704414862>=>:json}>>, @default_options={:path=>"/", 
:domain=>nil, :expire_after=>nil, :secure=>false, :httponly=>true, 
:defer=>false, :renew=>false}, @key="_faq-app_session", @cookie_only=true>, 
@env={"SERVER_SOFTWARE"=>"thin 1.7.0 codename Dunder Mifflin", 
#“/”,
:domain=>nil,:expire\u after=>nil,:secure=>false,:httponly=>true,
:defer=>false,:renew=>false},@key=“\u faq-app\u session”,@cookie\u only=true>,
@env={“服务器软件”=>“精简1.7.0代码名Dunder Mifflin”,

这样持续了好几页

查看任意对象的结构并不是OOP原则所鼓励的事情:对象隐藏了它们之外应该不相关的东西。此外,可能有更多的数据无法一次读取。要探索随机对象,最好的方法可能是
pry
gem,它允许您在控制台中检查对象。如果确实需要,您可以很容易地创建一个函数,该函数将递归对象的所有
实例变量
,并将它们全部打印出来

但是,这里可能不需要通用方法。这似乎是一个
ActionDispatch::Request::Session::Options
对象。它有一个
#to_hash
方法,可以很好地打印哈希:

require 'json'
puts JSON.pretty_generate(session_options.to_hash)
或者如果您不需要标准格式

require 'pp'
pp session_options.to_hash

谢谢你的回答。我将在rails应用程序中尝试一下