`
jsntghf
  • 浏览: 2481752 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

扩展string类

阅读更多

一、camelize

这个方法可以将字符串转成驼峰形式,并且可以将字符串中的/替换成::
将路径转换成命名空间时比较有用。

 

def camelize
   return self.gsub( /\/(.?)/ ) {
     "::" + $1.upcase
   }.
   gsub( /(^|_)(.)/ ) {
     $2.upcase
   }
end

 

"active_record".camelize #=> "ActiveRecord"
"active_record/errors".camelize #=> "ActiveRecord::Errors"

 

二、underscore

这是camelize的逆向转换
将命名空间转换成路径时比较有用。

 

def underscore
   return self.gsub( /::/, '/' ).
   gsub( /([A-Z]+)([A-Z][a-z])/, '\1_\2' ).
   gsub( /([a-z\d])([A-Z])/    , '\1_\2' ).
   tr( "-", "_" ).
   downcase
end

 

"ActiveRecord".underscore #=> "active_record"
"ActiveRecord::Errors".underscore #=> active_record/errors

 

具体如何将这两个方法加入模块中,可以参考在rails中如何加载自定义方法

分享到:
评论
1 楼 caryl 2009-12-03  
楼主可参考 module ActiveSupport::CoreExtensions::String的 camelize 和underscore 方法。

相关推荐

Global site tag (gtag.js) - Google Analytics