原字符串:start_menu_icon_cls 处理后字符串:startMenuIconCls
因为没有找到捷径,先说本人的方法。先把原字符串分割成数组,再将从 [1] 到 [-1] 的数组 首字母大写,,最后 Join 起来。
不知道有木有更好的方法,
为什么要这么做的原因是 rails model 的字段名和 extjs 的约定写法不一样~!
求高手给一个 更牛的 方法
用 Rails 的话:
irb> "start_menu_icon_cls".camelize(:lower)
=> "startMenuIconCls"
http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-camelize
[2] pry(main)> "student_infos".singularize => "student_info" [3] pry(main)> "student_infos".singularize.camelize => "StudentInfo" [4] pry(main)> "student_infos".singularize.camelize.constantize => StudentInfo
"ac_bd_ce".gsub(/\_./){ |match| match[1].upcase }
"ac_bd_ce".gsub(/^.|_./){ |match| match.size>1?match[1].upcase : match.upcase }
非 rails 这么写,行么?
一直用camelcase 现在知道他们是好基友了 Alias for String#camelize
"start_menu_icon_cls".camelcase
#=> "StartMenuIconCls"
"start_menu_icon_cls".camelize(:lower)
#=> "startMenuIconCls"