2008-09-13 60 views

回答

11

是的。最簡單的方法是將該值作爲字符串提升。像這樣:raise @foo.to_s

或者,您可以安裝調試器(gem install ruby-debug),然後用--debugger標誌啓動開發服務器。然後,在你的代碼中,調用debugger指令。

在調試器提示符中,您有許多命令,包括p來打印變量的值。

更新:這裏的a bit more about ruby-debug

5

如果你有一個控制器實例變量命名爲@foo,然後在你的控制器,你可以簡單地這樣做:在您的視圖模板使用

logger.debug "@foo is: #{@foo}" 

此外,您可以輸出值:

<%= debug @foo %> 
5

我更喜歡使用的檢查方法,像這樣:

raise @foo.inspect 

它具有比to_s更多的信息,如屬性值。從霍爾迪本斯特,約翰·託普利和Jaryl

3

摘要:

一,快速和骯髒的方式:

raise @foo.inspect 
在控制器

。或

<% raise @foo.inspect %> 

在您的看法。

二,正確記錄到您development.log

logger.debug "@foo == #{@foo.inspect}" 

三, Full-fledged debugging

安裝調試器(gem install ruby-debug),然後用--debugger標誌啓動開發服務器。然後,在你的代碼中,調用debugger指令。

在調試器提示符中,您有許多命令,包括p來打印變量的值。

0

如果您只需要查看某個值,那麼引發異常是最快的方法,但值得花時間學習如何正確使用調試器。很少有人只需要查看變量的值,您可能試圖在代碼中發現錯誤,而這正是調試器的用處。

發送信息到開發日誌比任何其他兩個選項,這裏這麼慢得多,如果你學習如何使用調試器(誰想要通過日誌文件中讀取)。使用記錄器進行生產,當有人打電話給你時,你會想知道什麼是價值,並說一切都被破壞了。

0

嗯,我通常喜歡在標準錯誤輸出

$ stderr.print( 「什麼」)

它的簡單,沒有工作。

相關問題