Rails ActiveSupport::Inflector

hiveer · 2014年02月17日 · 最后由 fresh_fish 回复于 2014年02月17日 · 1828 次阅读
def underscore(camel_cased_word)
     word = camel_cased_word.to_s.gsub('::', '/')
     word.gsub!(/(?:([A-Za-z\d])|^)(#{inflections.acronym_regex})(?=\b|[^a-z])/) { "#{$1}#{$1 && '_'}#{$2.downcase}" }
     word.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
     word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
     word.tr!("-", "_")
     word.downcase!
     word
   end

以上是 rails 的源代码,但本人对于 underscore 方法下的第一个 word.gsub!(...) 中的正则表达式 /(?:([A-Za-z\d])|^)(#{inflections.acronym_regex})(?=\b|[^a-z])/ 很不解,向各位求教了

ActiveSupport::Inflector 是我心中永远的。。。😢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号