我想转换字符串
"Full Time"
到
"full_time"
当我在irb中使用“全时”.underscore时,会提示错误
NoMethodError: undefined method `underscore' for "Full Time":String
我该如何解决?或者,有没有其他方法可以获得上述强调结果?
答案 0 :(得分:5)
有一个名为下划线的rails helper方法。如果您启动rails控制台(脚本/控制台),您将能够使用它:
"FullTime".gsub(/\s+/,'').underscore.to_sym
:full_time
所以我认为你应该做的是,删除空格,然后应用上述方法。请注意,我添加了to_sym只是为了表明它是可行的,但是如果你不需要它,只需删除它。
请注意,它是一个rails助手,而不是String类中的ruby方法。它只适用于rails enviornment 。
答案 1 :(得分:1)
您可以使用gsub并将所有空格替换为下划线
irb(main):008:0> "Full Time".downcase.gsub(/\s+/,"_")
=> "full_time"