2015-08-09 58 views
0

我有一個數組,其中包含以下對象 1.模型對象 - 即故事(ID:整數.....) 2.符號 3. Activerecord對象(實例的模型)未定義的方法錯誤 - Rails - 迭代時忽略

我需要定期從數組中選擇不同的對象組。我希望能夠應用特定於某個組的方法,並忽略其他方法中的未定義方法。這不直觀。任何對此方法作出響應並滿足條件的人都是合適的人選。 例如,如果我有

array.select {|element| element.superclass == ActiveRecord::Base} 

然後我得到未定義方法誤差從可能陣列

我怎樣才能避免這種錯誤的符號。只是選擇方法的一些設置,而不是錯誤處理。

回答

1

您可以使用respond_to?方法

array.select {|el| el.respond_to?(:superclass) && el.superclass == ActiveRecord::Base} 

或者您可以使用try。如果對象沒有響應方法或者調用該方法,則返回nil

array.select {|el| el.try(:superclass) == ActiveRecord::Base} 
相關問題