我的音軌模型has_and_belongs_to_many:moods,:流派和:tempos(其中每一個同樣有has_and_belongs_to_many:音軌)。使用HABTM查找屬於多個模型的記錄
我試圖建立一個搜索「過濾器」,用戶可以在其中指定任何數量的流派,情緒和節奏,這將返回匹配任何條件從每個過濾程度的軌道。
示例查詢可能是
params[:genres] => "Rock, Pop, Punk"
params[:moods] => "Happy, Loud"
params[:tempos] => "Fast, Medium"
如果我建立符合所有這些類型的軌道的數組,我怎樣才能從陣列選擇那些屬於任何和所有的情緒則params的曲目,然後選擇從第二個數組中,所有的曲目也符合任何和所有的速度參數?
我建立與
@tracks = []
Genre.find_all_by_name(genres).each do |g|
@tracks = @tracks | g.tracks
end
其中genres = params[:genres].split(",")
由於最初的陣列。