我需要一种通用方法将类名转换为带下划线的小写字母。例如,我希望将类名 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 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!