这是一个两方。我会对以下任何一种方法或其他建议感到满意。
我希望能够使用我的模型检索记录/对象,方法是向它传递一个搜索词并让它在模型的任何字段或模型认为可行的任何字段中查找该搜索词。所以,举个例子:
class Product < ActiveRecord::Base
...
def search_all_fields(search_term)
return search_term.length == 0 ? nil : Product.where("serial_number like :find_me", { :find_me => search_term })
end
end
这是来自产品模型。Company 模型中的相同函数可能如下所示:
class Company < ActiveRecord::Base
...
def search_all_fields(search_term)
return search_term.length == 0 ? nil : Company.where("customer_number like :find_me or name like :find_me", { :find_me => search_term })
end
end
我会喜欢一种“railsy”的方式来做到这一点,比如“find_by_looking_everywhere”,但我一直没能找到这样的东西。我发现了很多关于在单个字段中搜索多个值的建议,而不是在多个字段中搜索单个值的建议。所以这就是“第 1 部分”,有没有一种“轨道式”的方式来做到这一点?
“第 2 部分”...使用上面的代码,为什么会出现以下异常?
undefined method `search_all_fields` for #<Class:0xa38f2ac>
我正在使用@products = Product.search_all_fields("xy3445")
或调用方法@companies = Company.search_all_fields("high")
??跟踪显示异常仅由泛型类引发。它没有说#<Product...>
或#<Company...>
我有点失落......任何和所有的帮助表示赞赏。
谢谢,伙计。