2017-01-05 68 views
0

我有一個ActiveModel類SupportCase它有一定的實例變量(用attr_accessor創建)。如何打印名稱和值的類的實例變量?

對於該類的給定對象,我如何可以打印出其實例變量的名稱以及值。

我已經試過:

support_case.instance_variables.each { |a,b| puts "#{a} #{b}" } 

support_case.instance_variables.each { |a| puts "#{a} #{support_case.send(a)}" } 

後者沒有工作,因爲它產生的通話[email protected],而應該是support_case.var。所以我可以去掉@但是 必須有一些更乾淨的方式來做我想做的事,對吧?

謝謝!

+1

嘗試按照此http ://stackoverflow.com/a/37543312/5949678希望它會幫助你 –

+0

謝謝,Divya,會看看! – Flip

回答

1

由於迪夫亞·夏爾馬,我發現我一直在尋找的方法:

#instance_variable_get 

我以下列方式使用(關於我的問題):

support_case.instance_variables.each { |ivar| puts "#{ivar}: #{support_case.instance_variable_get(ivar)}" }