我正在用首字母縮略詞定義一些活動記錄。 RvPark(休閒車公園)。當我將課程名稱標題化時,我會得到'Rv Park'。它真的應該是'RV Park'。有沒有一個好的方法來做到這一點?由於這個模型與其他模型共享代碼,我需要創建一個通用的解決方案,但我一直沒有能夠提出一個。在Rails中使用titleize作爲首字母縮寫詞
我的確看到了這方面的討論,但是沒有爲我工作的解決方案。任何有識之士都會感激
我正在用首字母縮略詞定義一些活動記錄。 RvPark(休閒車公園)。當我將課程名稱標題化時,我會得到'Rv Park'。它真的應該是'RV Park'。有沒有一個好的方法來做到這一點?由於這個模型與其他模型共享代碼,我需要創建一個通用的解決方案,但我一直沒有能夠提出一個。在Rails中使用titleize作爲首字母縮寫詞
我的確看到了這方面的討論,但是沒有爲我工作的解決方案。任何有識之士都會感激
UPDATE:縮寫支持was added to the Rails Inflector我張貼了這個之後。請參閱@ Anson對Rails 3.2及更高版本的回答。
這看起來像是titleize
沒有設計的邊緣情況。問題在於capitalize
裏面的呼叫總是會把RV變成Rv。
我會爲內部調用self.class.titleize
的模型創建通用名稱函數,然後在RVPark模型中重載它。
您可以通過配置ActiveSupport::Inflector來完成此操作,其中提供了titleize方法。只需在初始化程序中定義您自己的inflections即可。
# config/initializers/inflections.rb
ActiveSupport::Inflector.inflections do |inflect|
inflect.acronym 'RV'
end
重新啓動您的應用程序以獲取更改。現在titleize
知道如何處理「RV」。火了一個Rails控制檯檢查出來:
> "RvPark".titleize
=> "RV Park"
> "rv".titleize
=> "RV"
查看更多很酷的東西,你可以用語調做鏈接的文檔。
謝謝,這就是我最終做的,它的效果很好。 – 2011-08-08 23:56:13
下面是一個更加強大的'titleize':https://github.com/granth/titleize – 2012-08-20 22:08:54
@GabeKopley github.com/granth/titleize gem如何用於問題的場景?它看起來像正常的標題一樣工作 – RAJ 2013-04-27 17:00:43