我想设计一个搜索服务,适用于多个不同的请求参数集。它可以只用一个参数调用,也可以用多个参数调用。
问题是一些参数只能单独使用,或者与其他参数互斥。
另一个问题是,一些参数确实是必需的,而其他参数只是可选的。
解决此问题的最简单方法是在控制器的search方法中包含一系列if语句,检查是否存在某些参数或参数集,并做出相应的反应。然而,来自Java世界的我被教导不要相信以一堆if或switch语句结尾的任何东西。在那里,我们经常求助于工厂,我们将从一系列策略类中选择适当的搜索策略的决定委托给工厂。所需要做的就是在请求参数和策略类之间配置适当的映射。
我还知道,Rails开发人员的思维倾向于以一种不那么抽象、更像商业的方式来解决问题。
怎样才能实现复杂的多参数搜索服务?
发布于 2011-08-21 05:17:55
Rails 2:搜索逻辑
Rails 3: meta_search
然后它就像搜索一样简单(Model.search:search)
睡个安稳觉。
https://stackoverflow.com/questions/7133760
复制相似问题