我想要一个类返回它自己的名称,用复数形式,例如“active_support/inflector”:
describe "self.resource" do
it "should be databases" do
Database.resource.should equal "databases"
end
end
class Database
def self.resource
self.class.to_s.tableize
end
end
失败的原因是:
expected #<String:84017460> => "databases"
got #<String:84018030> => "classes"
如何访问正在调用单例方法的类的名称?
最佳答案
这应该有效:
class Database
def self.resource
to_s.tableize
end
end
问题是你在属于的类上调用
to_s
,它是Database
类。您应该在localClass
上调用to_s
,这就是self
本身。因为Database
是消息的默认接收者,所以可以简单地离开self
。关于ruby - 在Singleton方法中获取类的名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20516834/