Ruby on rails 实现多参数搜索服务

Ruby on rails 实现多参数搜索服务,ruby-on-rails,web-services,Ruby On Rails,Web Services,我想设计一个搜索服务,它适用于多组不同的请求参数。可以仅使用一个参数调用它,也可以使用多个参数调用它 问题是一些参数只能单独使用,或者与其他参数相互排斥 另一个问题是某些参数确实是必需的,而其他参数只是可选的 解决此问题的最简单方法是在控制器的搜索方法中包含一系列if语句,检查是否存在某些参数或参数集,并做出相应的反应。然而,来自Java世界的我被教导不相信任何以if或switch语句结尾的东西。在那里,我们经常求助于工厂,我们将从一系列策略类中选择合适的搜索策略的决策委托给工厂。所需要的只是在

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

问题是一些参数只能单独使用,或者与其他参数相互排斥

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

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

我还知道Rails开发人员的思维倾向于以一种更为商业化的方式解决问题,而不是抽象的方式

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

Rails 2:searchlogic

Rails 3:元搜索

然后它就和Model.search一样简单了(params[:search])

睡个好觉