我在我的Ruby模型下面的方法:紅寶石:在過去的數字符分割字符串
老:
def to_s
numbers = self.title.scan(/\d+/) if self.title.scan(/\d+/)
return numbers.join.insert(0, "#{self.title.chop} ") if numbers
"#{self.title.titlecase}"
end
新:
def to_s
numbers = self.title.scan(/\d+/)
return numbers.join.insert(0, "#{self.title.sub(/\d+/, '')} ") if numbers.any?
self.title.titlecase
end
一個title
可以像這樣: Level1或TrackStar
所以TrackStar應該成爲Track Star和Level1應該是Level 1,這就是爲什麼我做了掃描的數字與
我試圖像1級以上的作品顯示它開始,我只是好奇,想知道是否有一個更雄辯的解決方案
是數字總是最後一個字符?那裏總是有一個數字? – texasbruce 2013-04-03 19:27:36
@texasbruce - 是的,最後一個字符總是最後一個數字 – dennismonsewicz 2013-04-03 19:30:09
'「#{self.title.titlecase}」'無緣無故地引用它。這可能應該是'self.title.titlecase',或者如果你擔心創建一個重複的字符串,那麼'self.title.titlecase.dup'。 – tadman 2013-04-03 19:30:27