我知道我可以通过调用where()
模型来搜索查询,如下所示:
Post.where(:title => 'My First Post')
但是,如果我不知道用户是否想过滤掉搜索参数怎么办?例如,我有一个包含可选title
字段的搜索表单。如果标题已填写,则表单应搜索标题。但是,如果不是,则表单应该只返回所有字段。
我尝试按照以下方式做一些事情
search = Post.all
if params[:title].present?
search.where(:title => params[:title])
end
但是,当我调用 Post.all 时,Rails 会立即返回搜索结果,我无法进一步添加条件/
我该怎么做呢?
谢谢!