Ruby on rails 如何在RubyonRails中获得人类可读的类名?
我正在用Ruby 1.9.3和Rails 3.0.9构建一个应用程序 我有一个像下面这样的班级Ruby on rails 如何在RubyonRails中获得人类可读的类名?,ruby-on-rails,ruby,ruby-on-rails-3,humanize,Ruby On Rails,Ruby,Ruby On Rails 3,Humanize,我正在用Ruby 1.9.3和Rails 3.0.9构建一个应用程序 我有一个像下面这样的班级 module CDA class Document def humanize_class_name self.class.name.gsub("::","") end end end 我想要像“CDADocument”这样的类名 我的人性化类名方法是实现这一点的正确方法吗 或 Rails还有其他内置方法吗 我认为Rails可能有类似的功能,但是由于您想要的形式是独
module CDA
class Document
def humanize_class_name
self.class.name.gsub("::","")
end
end
end
我想要像“CDADocument”这样的类名
我的人性化类名方法是实现这一点的正确方法吗
或
Rails还有其他内置方法吗 我认为Rails可能有类似的功能,但是由于您想要的形式是独特的,因此您必须自己设计方法。你定义它的位置是错误的。每节课你都必须这样做。相反,您应该在类中定义它
class Class
def humanize_class_name
name.delete(":")
end
end
some_instance.class.humanize_class_name #=> the string you want
或
如果您使用的是
i18n
,则可以调用Model.Model\u name.human
以获取本地化的模型名称
例如:Event.model_name.human
返回我的本地化名称
文档:FYI,
tr
比gsub
@AndrewMarshall快3.5倍。我知道tr
更快,但我不知道你可以用空字符串代替。谢谢。@Stefan我不知道那种方法。谢谢。
class Object
def humanize_class_name
self.class.name.delete(":")
end
end
some_instance.humanize_class_name #=> the string you want