Rails:在一个类数组中如何辨别每个是否有一个表?

时间:2015-04-23 21:54:33

标签: ruby-on-rails ruby-on-rails-4

我有一个我需要循环的类数组。如果类没有从ActiveRecord::Base继承(即没有表),我该如何退出循环?

classes_array.each do |klass|
  return if klass.doesnt_have_a_table
  ...
end

不确定如何实现。谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用superclass方法,如下所示:

classes_array.each do |klass|
    break unless klass.superclass == ActiveRecord::Base
    ...
end

答案 1 :(得分:1)

检查模型的祖先是否包含ActiveRecord::Base,如果不包含,则检查是否打电话:

classes_array.each do |klass|
  break unless klass.ancestors.include?(ActiveRecord::Base)
end