我有一个包含以下对象的数组 1.模型对象 - 即Tale(id:integer .....) 2.符号 3. Activerecord对象(模型的实例)
我需要定期从数组中选择不同的对象组。我希望能够应用特定于组的方法,并忽略其他方法上的Undefined方法。这不直观吗?任何响应该方法然后满足条件的人都是合适的候选人。 例如,如果我有
array.select {|element| element.superclass == ActiveRecord::Base}
然后我从数组
中的符号中得到未定义的方法错误如何避免此错误。而不是错误处理,只有select方法的一些设置。
答案 0 :(得分:1)
您可以使用respond_to?
方法
array.select {|el| el.respond_to?(:superclass) && el.superclass == ActiveRecord::Base}
或者您可以使用try
。如果对象没有响应方法,则返回nil
,否则调用该方法。
array.select {|el| el.try(:superclass) == ActiveRecord::Base}