首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Ruby on Rails 開發從頭來(三十六):Windows 環境除錯技巧

     編輯:Java 相關知識

核心原則:測試驅動開發

最有效的除錯策略是寫好測試。Rails 內建單元測試與功能測試框架,能及早發現錯誤、隔離問題範圍,並確保重構安全。養成「先寫測試,再寫實作」的習慣,是降低除錯成本的根本之道。

互動式控制台

在專案根目錄執行 ruby script/console 進入 IRB 會話,載入完整 Rails 環境:

>> pr = Product.find(:first)
=> #<Product:0x4b969ec @attributes={...}>
>> pr.price
=> #<BigDecimal:4b913d4,'0.12351E3',8(12)>
>> pr.image_url
=> "https://www.dearbook.com.cn/book/BookImage/67/lastTS00168921__.jpg"
>> pr.save
=> true

可即時驗證模型邏輯、關聯查詢、資料庫操作,無需啟動伺服器。

善用日誌檔案

  • 開發環境:log/development.log 記錄 SQL 查詢、參數、渲染資訊,是排查問題首選。
  • 測試環境:log/test.log 記錄測試過程中的資料庫操作。
  • 生產環境:log/production.log 僅記錄錯誤與關鍵資訊。

遇到異常時,第一時間檢查對應環境的日誌。

Web 伺服器主控台輸出

使用 WEBrick 時,ruby script/server 會在終端機顯示即時請求日誌。InstantRails 預設用 Mongrel,無法在同一視窗查看,建議改用 tail -f log/development.log 監控。

自訂日誌輸出

logger.warn("I don't think that's a good idea")
logger.info("Dave's trying to do something bad")
logger.error("Now he's gone and broken it")
logger.fatal("I give up")

四個等級:debug < info < warn < error < fatal。環境設定決定寫入門檻(開發環境預設 debug,生產環境 info)。

視圖除錯輔助方法

在 .rhtml 模板中使用 debug() 格式化輸出物件內容:

<h3>Your Order</h3>
<%= debug(@order) %>
<div id="ordersummary">...</div>

自動判斷 HTML 安全性,適合快速檢視物件狀態。

斷點除錯(僅開發環境)

  1. 在程式碼插入 breakpoint()。
  2. 終端機執行 ruby script/breakpointer 啟動斷點伺服器。
  3. 瀏覽器觸發該程式碼路徑,請求會掛起,終端機進入 IRB 會話。
  4. 在 IRB 中檢視變數、執行任意程式碼、甚至動態加入新斷點。
  5. 離開 IRB,瀏覽器請求繼續執行。

注意:InstantRails 的 Mongrel 不支援此功能,需切換至 WEBrick 或使用 ruby-debug gem 替代。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved