> 'Ne-6ren">
gpt4 book ai didi

ruby - 如何将 Ruby 类名 ("NewUserBatch") 转换为带下划线的字符串 ("new_user_batch")

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

我需要一种通用方法将类名转换为带下划线的小写字母。例如,我希望将类名 NewUserBatch 转换为 new_user_batch。如何做到这一点?

最佳答案

Underscore .

>> 'NewUserBatch'.underscore
=> "new_user_batch"

它包含在 Rails 中,所以如果您不使用它,您可以引用它的源代码。

def underscore(camel_cased_word)
word = camel_cased_word.to_s.dup
word.gsub!(%r::/, '/')
word.gsub!(%r(?:([A-Za-z\d])|^)(#{inflections.acronym_regex})(?=\b|[^a-z])/) { "#{$1}#{$1 && '_'}#{$2.downcase}" }
word.gsub!(%r([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
word.gsub!(%r([a-z\d])([A-Z])/,'\1_\2')
word.tr!("-", "_")
word.downcase!
word
end

关于ruby - 如何将 Ruby 类名 ("NewUserBatch") 转换为带下划线的字符串 ("new_user_batch"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12950861/

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