【问题标题】:Rails Search with Multiple ValuesRails 多值搜索
【发布时间】:2014-05-15 01:52:47
【问题描述】:

假设我有两个模特帖子和类别。

发布 has_many 类别

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

例子:

帖子 1 的类别为 2、5、6

帖子 2 的类别为 5,9

帖子 3 的类别为 2、4、8

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

在结果页面中这样显示

发布 3

发布 1

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    你可以试试:

    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)
    

    【讨论】:

    • 您好,怀疑 table_name 是什么意思?
    • table_name 是在 ActiveRecord 类上定义的方法,返回用于给定模型的表的名称。在大多数情况下,它只是类的复数下划线名称,但并非总是如此(例如,如果您使用 STI)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多