gpt4 book ai didi

ruby-on-rails - 如何将 Ruby 类名转换为下划线分隔符号?

转载 作者:数据小太阳 更新时间:2023-10-29 06:18:31 25 4
gpt4 key购买 nike

如何以编程方式将类名 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com