【发布时间】:2013-08-31 13:27:31
【问题描述】:
我需要转身:
"First Name".some_method = "first_name"
我想我可以只使用正则表达式,但想知道是否有更好的方法。我尝试了constantize 和humanize,这与我需要完成的几乎相反:
"first_name".humanize = "First name"
【问题讨论】:
标签: ruby-on-rails ruby string inflector
我需要转身:
"First Name".some_method = "first_name"
我想我可以只使用正则表达式,但想知道是否有更好的方法。我尝试了constantize 和humanize,这与我需要完成的几乎相反:
"first_name".humanize = "First name"
【问题讨论】:
标签: ruby-on-rails ruby string inflector
"First Name".gsub(/\s+/, '_').downcase
# => "first_name"
【讨论】:
"First Name".parameterize.underscore # => first_name
【讨论】:
require 'active_support/core_ext'
"First Name".gsub(/\s/, '').underscore # => "first_name"
不过,我找不到单一方法。
【讨论】:
irb(main):017:0> "First Name".downcase.gsub(' ', '_')
=> "first_name"
【讨论】:
然后使用String#tr如下:
"First Name".tr(" ", '_').downcase
# => "first_name"
【讨论】: