作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
如何以编程方式将类名 FooBar
转换为符号 :foo_bar
?例如像这样的东西,但它能正确处理驼峰大小写?
FooBar.to_s.downcase.to_sym
最佳答案
Rails 带有一个名为 underscore
的方法,它允许您将 CamelCased 字符串转换为 underscore_separated 字符串。所以你可以这样做:
FooBar.name.underscore.to_sym
但是正如 ipsum 所说,您必须安装 ActiveSupport 才能做到这一点。
如果你不想为此安装 ActiveSupport,你可以自己将 underscore
修改为 String
(下划线函数在 ActiveSupport::Inflector 中定义) :
class String
def underscore
word = self.dup
word.gsub!(/::/, '/')
word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
word.tr!("-", "_")
word.downcase!
word
end
end
关于ruby-on-rails - 如何将 Ruby 类名转换为下划线分隔符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5622435/
我是一名优秀的程序员,十分优秀!