2012-12-14 68 views
0

有時我得到這個錯誤,我只想讓Rails在發生錯誤時拯救/跳過錯誤,而不是完全停止程序。有沒有一個好的方法來做到這一點?未定義的方法'第一'爲零:NilClass

下面是我的代碼:

<% wiki = MediaWiki.new(:domain => 'commons.wikimedia.org') %> 
<% wikimedia_user = wiki.find("File:Samuel_L_Jackson_as_Nick_Fury.jpg") %> 

第二行導致此錯誤:

NoMethodError (undefined method `first' for nil:NilClass) 

如果出現這種情況,我只是想wikimedia_user被設爲零。我試着在.find的末尾添加.inspect?,但我得到的只是錯誤。有沒有辦法做到這一點?

回答

2

在與要抑制異常並返回nil的行相同的行上,添加rescue nil到最後。

<% wikimedia_user = wiki.find("File:Samuel_L_Jackson_as_Nick_Fury.jpg") rescue nil %> 

注:這不是普遍認爲是一個很好的做法,從該行拋出任何類型的異常會被救援被抓。就你而言,這可能不是一個大問題,但需要牢記未來。

相關問題