在我的應用程序有許多途徑像:user_login/resource/resource_name
店UTF8字符串,但驗證和參數transliteriated
例如:
:vlad/photo_albums/my-first-album
用戶應該能夠用自己的母語namings創建一個相冊(在我的情況下是俄語)。但是,如果用戶將他的相冊命名爲「Привет,Мир!」 (這是英文中的「Hello World!」),我想使用一個字符串,其中俄文字母的所有字母都被資源鏈接中類似冠冕堂皇的拉丁文替換。例如,用戶提供專輯標題「ПриветМир!」並且相應的鏈接看起來像'vlad/photo_albums/privet-mir'。
我已經做了所有必要的方法來將俄語轉換爲拉丁語,但是現在我正試圖找到最好的方式來安排所有這些。
第一個問題是,我需要找到專輯由它的標題:
@album = @user.albums.
where(:title => params[:album_title]).first
redirect_to user_albums_path(@user) unless @album
我真的想避免在我的SQL語句中使用任何東西,但拉丁美洲。
第二個問題是我不想在非拉丁字符串上運行驗證(我應該?),所以我想在驗證前拉丁化和參數化它,但如果拉丁化版本通過了驗證,仍然保存原始字符串驗證:
validates :title, :presence => true, :length => { :within => (2..25) },
:allow_blank => false, :uniqueness => { :scope => :user_id }
我在想做到這一點是哈希系列化像{:latin_version => ...:original_version => ..}或單獨的yaml文件的概念。
我需要你的想法如何妥善安排這個,什麼是最優雅的方式。還是我迂腐呢?只是存儲/搜索/驗證/顯示非拉丁字符會好嗎?
好的,感謝您祛除我的疑惑;) – 2011-04-25 04:56:52