Rails模型中的不区分大小写的搜索ReWorded

时间:2012-06-01 01:07:06

标签: sql ruby-on-rails postgresql search

是的,有一个问题几乎与此类似,但我不认为它是以铁轨方式回答的。它不是伤害Case-insensitive search in Rails model

我想在postgresql数据库中搜索基于名称的产品。 我也可能想为客户搜索同一个数据库。

所以我使用了上一个问题中的建议。 我的产品表中有一个功能 Product.find_by_name #takes名称并找到与前一个答案相同的内容。

轻松!现在顾客怎么样......

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
...

其中每一项都必须进行硬编码。当我需要另一个时,我必须打开客户,复制代码,并创建一个新函数。因为我不知道这些值是整数,字符串还是日期。

我正在寻找一种方法,不必为每个模型实现这一点,并且我可能希望在将来的某个时刻进行每次搜索迭代。

我想感谢另一个问题的答案。他们似乎并不像“Rails”那样,我希望能有更多的东西。手指交叉,超过4个月的人,可以指出我真正的干。

1 个答案:

答案 0 :(得分:1)

您是否尝试同时搜索所有这些属性?如果是这样,您可能想尝试使用Thinking Sphinx

等搜索引擎