0

はい、ほぼ同じような質問がありますが、レールの方法で回答されたとは思いません。DRY ではないので痛い Rails モデルでの大文字と小文字を区別しない検索

名前に基づいて製品を postgresql データベースで検索したいと考えています。同じデータベースで顧客を検索することもできます。

そこで、前の質問の提案を利用します。製品テーブルに関数があります Product.find_by_name #前の回答が示唆するように、名前を取得して検索します。

簡単!さて、お客様は…

Customer.find_by_contact_name
Customer.find_by_email_address
Customer.find_by_company_name
Customer.find_by_phone
Customer.find_by_contact_name_and_phone
Customer.find_by_industry_id_and_contact_name  #the insdustry_id is not text so it can't be found. 
# Ahh snot I forgot a few.
Customer.find_by_contact_name_and_company_name
Customer.find_by_contact_name_and_email_address
Customer.find_by_contact_name_and_phone
Customer.find_by_industry_id_and_email_address
...

これらはそれぞれハードコーディングする必要がありました。別の関数が必要になったときは、Customers を開いてコードをコピーし、新しい関数を作成する必要がありました。値が整数なのか、文字列なのか、日付なのかわからなかったからです。

私は、将来のある時点でやりたいと思うかもしれないすべてのモデルと検索のすべての反復に対してこれを実装する必要がない方法を探しています。

他の質問への回答に感謝したいと思います。「Rails」のようには見えないので、もっと何かを期待していました。指を交差させて、4か月以上の誰かが私に本当のDRYを指摘することができます.

4

1 に答える 1

1

これらすべての属性を同時に検索しようとしていますか? その場合は、Thinking Sphinxなどの検索エンジンを使用してみてください。

于 2012-06-25T00:45:28.367 に答える