我希望一个类返回它自己的复数名称,例如使用“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
问题是您在 Database
所属的类上调用 to_s
,它是 Class
类。您应该改为在本地 self
上调用 to_s
,即 Database
本身。由于 self
是消息的默认接收者,因此可以简单地保留 to_s.tableize
。
关于ruby - 在 Singleton 方法中获取类的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20516834/