2011-08-20 27 views
0

我想設計一個適用於多組不同請求參數的搜索服務。它可以只用一個參數來調用,或者用更多的參數來調用。實現多參數搜索服務

問題是一些參數只能單獨使用,或者與其他參數相互排斥。

另一個問題是,一些參數是真正需要的,而其他的只是可選的。

解決這個問題的最簡單方法是在控制器的搜索方法中包含一系列if語句,檢查某些參數或一組參數的存在,並相應地作出反應。然而,從Java的世界來看,我被教導不相信任何事情,最終會發生一堆if或switch語句。回到那裏,我們經常訴諸工廠,我們將決定從一系列戰略類別中選擇適當的搜索策略。所有這一切都是必要的,就是在請求參數和策略類之間配置一個適當的映射。

我也知道Rails的開發思路傾向於以一種不太抽象和更像商業的方式來解決問題。

什麼是製作複雜的多參數搜索服務的正確方法?

回答

0

軌道2:searchlogic

導軌3:meta_search

然後,它的一樣簡單Model.search(PARAMS [:檢索])

睡眠容易。