我有一个名为Product的模型的Rails应用程序(运行在2.2.2版本上)。产品与特征之间存在着多属性关系。问题是我需要为产品提供搜索功能。所以我需要能够搜索具有相似名称和其他一些属性的产品。棘手的部分是,搜索还必须返回具有搜索表单中指定的一组特定功能的产品(这是由一堆复选框表示的)。下面的代码工作,但它给我的印象相当低效:构建一个拥有和属于多个查询
@products = Product.find(:all, :conditions=>["home=? AND name LIKE ? AND made_by LIKE ? AND supplier LIKE ? AND ins LIKE ?",hme,'%'+opts[0]+'%','%'+opts[1]+'%','%'+opts[3]+'%','%'+opts[4]+'%'])
#see if any of these products have the correct features
if !params[:feature_ids].nil?
f = params[:feature_ids].collect{|i| i.to_i}
@products.delete_if {|x| x.feature_ids!=f}
end
我很抱歉,我的轨道把握/ SQL是如此之弱,但没有人有关于如何改进上面的代码有什么建议?非常感谢!
一件事:如果我的回答帮你,请把它标记为回答您的问题(绿色对勾):) 10qu – 2010-01-13 13:49:20