Rails搜索多个值

时间:2014-04-03 10:01:43

标签: ruby ruby-on-rails-3 search activerecord associations

所以,假设我有两个模型帖子&分类

发布has_many类别

现在,我想根据类别搜索帖子?

示例:

帖子1有类别2,5,6

帖子2有类别5,9

第3篇有2,4,8类

现在在搜索用户选择类别2,4,8

在结果页面中显示如下

发布3

发布1

任何想法?

1 个答案:

答案 0 :(得分:0)

您可以尝试:

class Post

  def self.with_categories(*category_ids)
    joins(:categories).where(categories: {id: category_ids}).select("#{table_name}.*, COUNT(#{Category.table_name}.id AS match_count").group("#{table_name}.id").order(:match_count)
  end
end

Post.with_categories(2,4,8)