2015-08-09 59 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} 
相关问题