我正在使用第三方 API,它似乎意外地回傳了應該是數字屬性的空欄位。
我的應用程式在其視圖中使用了大量的 Model.whatever_attribute 檢查,我突然開始收到諸如“nil:NilClass 的未定義方法 `>' 之類的錯誤”以及whatever_attribute 為 nil 的類似錯誤。
例如,我有這樣的查看代碼:
.stat{ :class => ((@obj.value > 1.2 and @obj.vaue > 0) ? 'green-font': 'red-font')}
如果 value = nil,則回傳上述例外。
現在,我不能真正假設 value 為 0 并且在資料庫中有一個默認值,因為它可能是錯誤的值。我將不得不測驗我是否從 API 回傳 null,并且可能向最終用戶顯示“N/A”或“-”。
當然,我可以通過各種方式做到這一點,我最初的想法是設定一個輔助方法,幾乎??可以做到 nil?在那里檢查并相應地回傳,但我想知道。
是否有某種 ruby?? 成語可以用來更優雅地處理這種情況?
uj5u.com熱心網友回復:
我認為它必須是基于模型的方法
在app/models檔案中model_name.rb
方法如:
def get_font_class
self.value.nil? || self.value < 0 ? "green-font" : "red-font"
end
您可以添加任何您想要的檢查
注:||檢查第一個運算式(self.value.nil?),如果不是,則true檢查第二個(self.value < 0)
并在視圖中使用此方法:
class: @model_object.get_font_class
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/445701.html
