Ruby on rails 4 rails4如何列出具有现有权威策略的所有模型

Ruby on rails 4 rails4如何列出具有现有权威策略的所有模型,ruby-on-rails-4,pundit,Ruby On Rails 4,Pundit,我正在尝试获取应用程序中具有已定义权威策略的所有模型的列表 在此之前,我将使用以下代码进行检查: current_user = User.first ActiveRecord::Base.send(:subclasses).map { |subclass| subclass.name if Pundit.policy(current_user, subclass.new) } 但是,当我使用Globalize gem时,我得到了以下错误,关于收集,作为一个抽象类,它不能被实例化

我正在尝试获取应用程序中具有已定义权威策略的所有模型的列表

在此之前,我将使用以下代码进行检查:

current_user = User.first
ActiveRecord::Base.send(:subclasses).map { |subclass| subclass.name if    
    Pundit.policy(current_user, subclass.new) }
但是,当我使用Globalize gem时,我得到了以下错误,关于收集,作为一个抽象类,它不能被实例化

NotImplementedError: Globalize::ActiveRecord::Translation is an
  abstract class and cannot be instantiated.
是否仍有覆盖此错误的方法?在实例化子类之前在if测试中插入一些检查 我还可以从子类列表中删除这个Globalise表

["HABTM_Groups", "HABTM_Roles", "HABTM_Groups", "HABTM_Roles", "User", "HABTM_Groups", "HABTM_Roles", "AccessLevel", "Company", "Document", "Group", "Globalize::ActiveRecord::Translation", "HABTM_Users", "Message", "Profile", "RestrictedActivity", "RestrictedAttribute", "Role", "HABTM_Users", "Sheet"]

感谢您的反馈

我发现了如何避免抽象类

ActiveRecord::Base.send(:subclasses).map { |subclass| subclass.name if !subclass.abstract_class? && Pundit.policy(current_user, subclass.new) }.compact

也许有一种更简单的方法可以使用一些我还没有发现的内部权威技巧来获取这个列表

我发现了如何避免抽象类

ActiveRecord::Base.send(:subclasses).map { |subclass| subclass.name if !subclass.abstract_class? && Pundit.policy(current_user, subclass.new) }.compact
也许有一种更简单的方法可以使用一些我还没有发现的内部权威技巧来获取这个列表