【发布时间】:2012-03-07 16:56:30
【问题描述】:
假设我有一个模型Book,其字段为word_count,可能还有许多其他类似的字段。
对我来说,在数据库的“高级搜索”中将条件串在一起的好方法是什么?在上面的示例中,我有一个带有“word count between ___ and ___”框的搜索表单。如果用户填写第一个框,那么我想返回所有字数大于该值的书籍;同样,如果用户填写第二个框,那么我想返回所有字数少于该值的书籍。如果两个值都填写,那么我想返回该范围内的字数。
如果我这样做,显然
Book.where(:word_count => <first value>..<second value>)
如果只填写一个字段,这将中断。有什么方法可以优雅地处理这个问题?请记住,可能有许多相似的搜索条件,所以我不想为每个可能的组合构建单独的查询。
抱歉,如果之前有人问过这个问题,但搜索该网站尚未产生任何有用的结果。
【问题讨论】:
标签: ruby-on-rails activerecord