2014-07-17 73 views
0

我想將friendly_id應用到現有模型中。應用程序使用russian gem,它可以很好地處理新的或手動保存的記錄,但是當我從命令行更新記錄時,它似乎不起作用。用friendly_id自動生成音譯斯拉夫語slu 012

User.find_each(&:save)(as friendly_id docs syggested)會產生類似--<id>的slu slu。

我使用的自定義標準化的方法來提供直譯毛坯:

def normalize_friendly_id(input) 
    Russian.transliterate input.to_s.mb_chars.downcase 
end 

但它肯定會錯過一些邊緣情況,並從「正常」的工作流程不同的方式處理字符串。我正在尋找的是重用定期創建/更新流程和原生行爲的方式。

回答

6

解決這個問題的最好辦法:

1)添加gem 'babosa' n您的Gemfile中

gem 'friendly_id' 
gem 'babosa' 

2)Owerride friendly_id的方法,在你的模型

def normalize_friendly_id(text) 
    text.to_slug.transliterate(:russian).normalize.to_s 
end 
+1

現在是'text.to_slug.transliterate(:russian).normalize.to_s' – hlcs

+0

謝謝!我更新了答案! –