如何将一系列单词转换为属性?

时间:2013-08-28 12:52:34

标签: ruby-on-rails ruby string inflector

我需要转:

"First Name".some_method = "first_name"

我想我可以使用正则表达式,但想知道是否有更好的东西。我尝试了constantizehumanize,这与我需要完成的事情完全相反:

"first_name".humanize = "First name"

5 个答案:

答案 0 :(得分:1)

"First Name".gsub(/\s+/, '_').downcase
# => "first_name" 

答案 1 :(得分:1)

"First Name".parameterize.underscore # => first_name

答案 2 :(得分:-1)

require 'active_support/core_ext'

"First Name".gsub(/\s/, '').underscore # => "first_name"
但是,我无法找到单一方法。

答案 3 :(得分:-1)

  irb(main):017:0> "First Name".downcase.gsub(' ', '_')
  => "first_name"

答案 4 :(得分:-1)

然后使用String#tr,如下所示:

"First Name".tr(" ", '_').downcase
# => "first_name"