实现多参数搜索服务

时间:2011-08-20 18:26:08

标签: ruby-on-rails web-services

我想设计一个适用于多组不同请求参数的搜索服务。它可以仅使用一个参数调用,也可以使用更多调用。

问题在于某些参数只能单独使用,或者与其他参与者互斥。

另一个问题是确实需要一些参数,而其他参数只是可选的。

解决此问题的最简单方法是在控制器的搜索方法中包含一系列if语句,检查是否存在某些参数或参数集,并相应地做出反应。然而,来自Java的世界,我被教导不相信任何最终在一堆if或switch语句中的东西。在那里,我们经常使用工厂,我们委托决定从一堆策略类中选择适当的搜索策略。所有必要的,是在请求参数和策略类之间配置适当的映射。

我也知道Rails的开发心态倾向于以更抽象,更像商业的方式解决问题。

制作复杂的多参数搜索服务的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

Rails 2:searchlogic

Rails 3:meta_search

然后它就像Model.search(params [:search])

一样简单

睡觉轻松。