2016-05-10 11 views
1

は今、私はアイテムを見つけるために、コードのこの部分を使用します。Railsで英語以外の文字を大文字と小文字を区別しない検索する方法は?</p> <pre><code>where("lower(name) like ?", "%#{search_word.downcase}%") </code></pre> <p>をしかし、それはロシア語の文字で正常に動作しません:

だから私はこの試みた:

where("lower(name) like ?", "%#{search_word.mb_chars.downcase.to_s}%") 

を、それはどちらか動作しませんでした。

私は何をしますか?

更新:ありがとうございます。 likeの代わりにilikeと書くと、Postgresで動作するようです。どうすればsqlLiteでも動作させることができますか? =)

+0

JRubyがそれをうまく処理してくれるのだろうか?それはJava機能を使用することがあり、Javaは優れた国際化機能を備えています。 –

+0

@KeithBennett sooo cooool。私はjrubyとjdkをインストールしなければならないのは、1行のコードなので?) – user2950593

+0

これはおそらくあなたが切り替えるのにそれほど重要ではないだろうが、もしあなたがJRubyを持っていれば、より良い。私はrvmを使用してJRubyをインストールしました。もしあなたがそれをテストするスクリプト(SQLiteのセットアップを含む)を持っていれば、私はそれを実行して結果を報告することができます。 –

答えて

0

Easy way to convert numbers into ordinals in words号で@sawaのおかげで、驚いたことにtwitter_cldrの宝石について知りました。これをチェックしてください:

2.3.0 :001 > require 'twitter_cldr' 
=> true 
2.3.0 :002 > 'Привет'.localize.casefold.to_s 
=> "привет" 
2.3.0 :005 > 'Привет'.localize.casefold.to_s == 'привет'.localize.casefold.to_s 
=> true 

この宝石を使用して、データベースの値と比較する小文字の文字列を取得してください。

関連する問題