JpPrefecture::Prefecture.find(name: 'hoge') で意図しないレコードが取得されてしまうケースがある
tackeyy opened this issue · 3 comments
tackeyy commented
便利なGemを作成いただきありがとうございます! 🎉
概要
JpPrefecture::Prefecture.find(name: 'hoge') は name / name_e / name_h / name_k
を前方一致で検索するという仕様のため、以下のようケースで意図しないレコードが取得されてしまいます。
jp_prefecture/lib/jp_prefecture/prefecture.rb
Line 129 in f2a5a35
# 例:レコードが取得できないことを期待しているが、青森のレコードが取得される
JpPrefecture::Prefecture.find(name: '東')
=> #<JpPrefecture::Prefecture:0x00007fc550158890 @area="東北", @code=2, @name="青森県", @name_e="Aomori", @name_h="あおもりけん", @name_k="アオモリケン", @type="県", @zips=[185501..185501, 300111..395346]>
考えたこと
JpPrefecture::Prefecture.find
の引数がname
の場合は、name
のみを検索対象とするJpPrefecture::Prefecture.find
の引数にname_e / name_h / name_k
をうけれるようにする
とすれば解決しそうですが、前方一致だと同じような問題が起きる可能性があります。
とりいそぎのレポートです。
chocoby commented
反応が遅くなってしまいすみません!
レポートありがとうございます 😄 確認します!
chocoby commented
- 案 1: 完全一致で検索するオプションを追加する
- 案 2:
name_e
,name_h
,name_k
を指定できるようにするname
で都道府県以外を検索する人はどれぐらいいるのだろうか?name
のみ検索対象にする場合は、PATCH バージョンのアップデートで事前にメッセージを表示する- MINOR バージョンをアップデートするタイミングで
name
だけ検索対象とする
- MINOR バージョンをアップデートするタイミングで
chocoby commented
時間が空いて申し訳ありませんが、v1.0.0.rc1
にて対応しました。
https://github.com/chocoby/jp_prefecture/releases/tag/v1.0.0.rc1
不具合等ありましたら Issue を作成するか、Re-open してください 🙇