所以我的项目模型当前包含一个名为 tags 的列,其格式为 a、b、c、d、e、f 等...在视图中,我有一个表单,它可以将复选框收集到 filters[] 中在控制器中使用 params[:filters]。我的问题是如何过滤至少包含这些标签之一的项目?
def index
@search = Project.search(params[:search])
@projects = @search.???
end
我想像
@projects = Project.search(:tags_contains => params[:filters])
或者
params[:filters].each do |p|
@projects ||= @search.where(["projects.tags like ?", p])
end
会工作,但它似乎没有返回任何东西。有什么建议吗?
示例:假设复选框 a 和 c 以包含在 params[:filters] 中的形式被选中。我有三个项目:
Project | Tags
------------+------
Project 1 | a,b
Project 2 | c
Project 3 | a,c
Project 4 | d
在此示例中,我想返回 Project 1,2,3,因为它们至少包含 a 或 c