[前][次][番号順一覧][スレッド一覧]

rails:1196

From: Yosuke Suzuki <yosuke@j...>
Date: Mon, 29 May 2006 01:35:02 +0900
Subject: [rails:1196] Re: す、せ、そ、がの処理で問題

suzukiです。

書き忘れましたが、
$KCODE='UTF8'を設定し
データベース、コードとも
UTF-8です。


Yosuke Suzuki wrote:
> suzukiと申します。
> 
> railsというよりもrubyの書き方の問題だと思われますが、
> 何かご存知のかたいらっしゃいましたら
> ご返答いただけると助かります。
> 
> 現在、取引先企業の電話番号を
> 管理するアプリケーションを作成しています。
> 
> データベースのshamei_kana
> という項目には、平仮名の社名が登録されています。
> 
> getパラメータでエスケープした「あ」など五十音の1文字を
> 渡すことで、「あ」の読みで始まる企業の一覧を表示するようにしています。
> 
> 濁音をもつ、か行、さ行、た行などについては
> succメソッドを使って、例えば「か」なら「が」も対象に
> するようにしています。
> 
> おおむね意図したとおり動いてますが、
> 「す」の場合、「す」と「ず」で始まるレコードだけでなく、「お」で
> 始まるものも表示されてしまいます。
> 「せ」の場合は「が」、「そ」の場合は「ぎ」
> 「か」の場合は「ぜ」、「き」の場合は「ぞ」です。
> 
> このような意図しないレコードまでを取り出してしまう
> 状況を解決する方法はありませんでしょうか?
> 
> よろしくお願いします。
> 
> 
> 以下controllerの抜粋
> <テーブル名はreleases>
> require 'jcode'
> oto = @params[:oto]
> oto = URI.unescape(oto)
> if oto =~ /[あいうえおなにぬねのまみむめもやゆよらりるれろわを]/
> oto = oto + "%"
> @release_pages, @releases = paginate :releases, :per_page => 10000,
> :conditions => ["shamei_kana LIKE ?", oto]
> elsif oto =~ /[かきくけこさしすせそたちつてと]/
> oto2 = oto.succ
> oto = oto + "%"
> oto2 = oto2 + "%"
> @release_pages, @releases = paginate :releases, :per_page => 10000,
> :conditions => ["shamei_kana LIKE ? OR shamei_kana LIKE ?", oto, oto2]
> elsif oto =~ /[はひふへほ]/
> oto2 = oto.succ
> oto3 = oto2.succ
> oto = oto + "%"
> oto2 = oto2 + "%"
> oto3 = oto3 + "%"
> @release_pages, @releases = paginate :releases, :per_page => 10000,
> :conditions => ["shamei_kana LIKE ? OR shamei_kana LIKE ? OR shamei_kana
> LIKE ?", oto, oto2, oto3]
> end
> 
> --
> ML: rails@r...
> 使い方: http://QuickML.com/
> 
> 


--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      1195 2006-05-28 17:56 [yosuke@j...         ] す、せ、そ、がの処理で問題              
->    1196 2006-05-28 18:35 ┣[yosuke@j...         ]                                       
      1198 2006-05-29 04:55 ┗[someeda@g...        ]                                       
      1199 2006-05-30 02:15  ┗[yosuke@j...         ]