Item
我正在编写一个搜索查询,用户可以按创建者、标题或描述或以上任何组合搜索s。
因此,在我的搜索控制器逻辑中,我因此获取了参数:
creator = params['creator']
title = params['title']
description = params['description']
# todo: do some input validation here
results = nil
cr = User.roughly_named(creator).first
我现在正在做的是:
q = []
q << "creator_id IS #{cr.id}" if cr
q << "title LIKE '%#{title}%'" if title != ''
q << "description LIKE '%#{description}%'" if title != ''
results = Item.where(q.join(' AND ')
但肯定有更好的方法。我愿意接受建议。