2011-07-25 22 views
1

我々のアプリケーションは、ページ名のパラメータ化バージョンを使用してページURLを自動的に生成します。例:Railsはキリル文字をパラメータ化できません(ロシア語)

http://www.domainname.com/this-is-the-page-name 

シンプルです。私はこれに対処する方法をオンラインで掘ってきた

"Пробна галерия".parameterize 

、と私は音訳に向けてポイントを発見した提案:ページ名はキリル文字を使用する場合、パラメータ化メソッドは空の文字列を返す以外、正常に動作します技術。これに対処する単純な簡単な方法があるのだろうかと思います。

答えて

0

GSUBを使用してみてください:

irb> "Пробна галерия".gsub!(/\s/,'-') 
    => "Пробна-галерия" 
+1

を可能であれば、誰かがアドレスバーにキリル文字を表示することが標準であることを確認できなければ 第2に、parameterizeはgsub解が単純すぎる出力文字列を整理するうえで素晴らしい仕事です。 –

+0

次に、gem [russian](https://github.com/Undev/russian) を試してください>オーバーロードされたメソッドは、inflectorまたはActiveSupport(String#parameterize)をパラメータ化します。今はロシアの手紙のローマ字化です。 – sfate

0

このお試しください:我々は、キリル文字で多くの経験を持っていないが、私はむしろのローマ字版テキストを表示したい

def to_slug  
    # http://stackoverflow.com/questions/1302022/best-way-to-generate-slugs-human-readable-ids-in-rails 

    #strip the string 
    ret = self.strip 

    #replace all whitespaces and underscores to dashes 
    ret.gsub!(/[\s_]+/, '-') 

    #replace all non alphanumeric, non dashes with empty string 
    ret.gsub! /\s*[^A-Za-z0-9А-Яа-я\-]\s*/, '' 

    #convert double dashes to single 
    ret.gsub! /-+/,"-" 

    #strip off leading/trailing dashes 
    ret.gsub! /\A[-]+|[-]+\z/,"" 

    ret 
end 
関連する問題