3

我有一臺Amazon EC2服務器上託管的RubyOnRails應用程序(帶有Elastic Load Balancer),它與託管在Amazon RDS上的數據庫進行通信。RubyOnRails和MySQL2偶爾返回錯誤500

我無法修復由aplication偶爾返回錯誤500:

NoMethodError (undefined method `fields' for nil:NilClass): 
activerecord (3.2.8) lib/active_record/connection_adapters/mysql2_adapter.rb:216:in `exec_query' 

如何解決這個問題?

回答

0

大多數情況下,您正嘗試在返回nil的活動記錄對象上調用一個方法。

例如,如果你有一個稱爲頁面的模型,並試圖獲取該頁面的字段,即Page.find(params [:id])。fields但是在操作系統中沒有記錄,所以你正試圖調用它的方法字段,該方法字段對於你的頁面模型的那個實例不存在。

嘗試在內部封裝方法調用,並且僅當頁面(或者您試圖調用它的任何類)不爲零時,if/else語句纔會調用方法字段。