Rails:获取外部类名称

Who*_*his 20 ruby-on-rails

如何获得我所关注的模型的类名?

我正在创建一个关注范围的问题,如/sf/answers/1013866591/所述,但需要多态搜索的型号名称.

self.table_name工作正常,self.table_name.singularize.titleize.gsub(/\s+/, "")但也许这是一个更容易获得类名的方法.

And*_*nes 34

您可以name像在类本身中一样使用该方法.

module M
  extend ActiveSupport::Concern

  included do
    scope :my_fancy_scope, where(some_type: name)
  end
end
Run Code Online (Sandbox Code Playgroud)

  • `included`块在类的上下文中执行,其中`self`将是`YourModel`,因此`self.class`将是`Class` - 不是你想要的!:) (4认同)
  • @ vint-i-vuit我不认为这是真的; 正如我在评论中所说,`self`是类对象`YourModel`,所以`self.name`是`"YourModel"`.但是,因为`YourModel`是一个类对象,`self.class`是`Class`,`self.class.name`是``Class"`. (2认同)