したがって、私のプロジェクトモデルには現在、a、b、c、d、e、fなどの形式のタグという名前の列が含まれています...ビューには、チェックボックスをフィルター[]に収集するフォームがあります。 params[:filters] を使用してコントローラーで使用します。私の質問は、これらのタグの少なくとも 1 つを含むプロジェクトをどのようにフィルタリングするのですか?
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] 内に含まれるフォームでチェックされたとします。私は3つのプロジェクトを持っています:
Project | Tags
------------+------
Project 1 | a,b
Project 2 | c
Project 3 | a,c
Project 4 | d
この例では、少なくとも a または c が含まれているので、Project 1,2,3 を返したいと思います。