PeopleテーブルにマップするPersonモデルを持つRubyonRailsアプリケーションがあります。このテーブルには、次のようにfirst_name、middle_name、およびlast_nameが含まれています。
John Q. Doe
John H. Doe
Jane M. Doe
Jim R. Doe, Jr.
Jack Timothy Doe
ここで、入力が特定の名前の派生語の省略形である場合に、テーブルに対して検索を実行する必要があります。略語は次の形式です。
- 名の最初のイニシャルとそれに続くスペース
- ミドルネームの最初のイニシャルとそれに続くスペース(ミドルネームがある場合)
- フルラストネーム
例えば:
find_by_abbreviated_name("J Q Doe") => would find the John Q. Doe record
find_by_abbreviated_name("J T Doe") => would find the Jack Timothy Doe record
find_by_abbreviated_name("J R Doe, Jr.") => Jim R Doe, Jr.
Rubyには、ファーストネームとミドルネームの最初の文字をフルラストネームと組み合わせて使用して検索を行うための巧妙な方法がありますか。これを行う方法を考え出すことができるので、Personテーブルに別のフィールドを追加する必要はありません。