比方說,我有一個模型Book
,其中有一個字段word_count
,可能還有許多其他類似的字段。用多種條件搜索導軌(如果值不爲空)
對我來說,在數據庫的「高級搜索」中將條件串在一起的好方法是什麼?在上面的例子中,我會爲「word count between ___ and ___
」提供包含框的搜索表單。如果用戶填寫第一個框,那麼我想返回所有字數大於該值的書;同樣,如果用戶填寫第二個框,那麼我想返回所有字數小於該值的書籍。如果兩個值都填入,那麼我想返回該範圍內的字數。
顯然,如果我不
Book.where(:word_count => <first value>..<second value>)
,那麼這將打破,如果只有其中一個字段中瀰漫。有什麼辦法能夠完美地處理這個問題?請記住,可能有許多類似的搜索條件,所以我不想爲每個可能的組合建立單獨的查詢。
對不起,如果這個問題之前已經問過,但搜索網站還沒有產生任何有用的結果呢。
我挺喜歡這是怎麼回事。不過,我在哪裏上課? – 2012-02-17 10:29:18
我們把它們放到'app/models'中。您可以將它們命名爲'Filters',並將它們放在'lib/filters'文件夾中 – roo 2012-02-17 12:46:56