2010-04-21 134 views
0

我想將字符串轉換NoMethodError爲下劃線

"Full Time" 

"full_time" 

當我使用IRB 「全職」 .underscore,它提示錯誤

NoMethodError: undefined method `underscore' for "Full Time":String 

我該如何解決它?或者有沒有其他的方法可以讓我得到上面強調的結果?

回答

5

有一個叫下劃線軌的輔助方法。如果您炒掉軌控制檯(腳本/控制檯),你將能夠使用它:

"FullTime".gsub(/\s+/,'').underscore.to_sym 
:full_time 

所以,我認爲你應該做的是,除去空間,然後應用上述方法。請注意,我添加to_sym只是爲了表明它也是可能的,但如果您不需要它,只需將其刪除即可。

請注意,它是一個rails helper,而不是String類的ruby方法。它只會在軌道環境中運作。

+0

oooo我忘了這是一個鐵軌助手,但我測試了它在IRB -_- || 感謝提醒我的朋友。 :) – 2010-04-21 08:48:50

1

你可以使用GSUB和替換所有空格強調

irb(main):008:0> "Full Time".downcase.gsub(/\s+/,"_") 
=> "full_time" 
+0

它運作良好。謝謝哥們。 :) – 2010-04-21 08:48:18