0
所以我的Project模型當前包含一個名爲標籤的列,其格式爲a,b,c,d,e,f等等......在視圖中,我有一個收集複選框的表單過濾器[],我可以在控制器中使用params [:filters]。我的問題是如何過濾包含至少一個這些標籤的項目?Rails元搜索複選框
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
在這個例子中,我希望回到項目1,2,3,因爲它們含有至少一個或c
如果您存儲項目的實例,請使用「@project」而不是@search。我不是100%確定你問的是否可以澄清你的問題。您是否在尋找具有特定標籤的項目? – Steve 2012-07-19 07:49:26
添加了一個示例。希望澄清我的問題,對不起 – bph 2012-07-19 07:55:49
你如何處理項目標記關係是一個has_many? – Steve 2012-07-19 08:17:51