【问题标题】:How to do a query for multiple categories如何查询多个类别
【发布时间】:2020-10-15 17:23:45
【问题描述】:

我有 3 个简单的模型

class Tag < ApplicationRecord
  belongs_to :category
  belongs_to :course
end

class Course < ApplicationRecord  
  has_many :tags, dependent: :destroy
  has_many :categories, through: :tags
end

class Category < ApplicationRecord
  has_many :tags, dependent: :destroy
  has_many :courses, through: :tags
end

给定一个类别为 string(例如“日语”),很容易找到 Category.find_by_title('Japanese').courses

的课程

如果类别在 数组 中,我很难进行查询,例如 ['Japanese', 'Language'] 需要返回标记为“Japanese”的课程 “语言”

【问题讨论】:

    标签: ruby-on-rails postgresql activerecord


    【解决方案1】:

    您可以使用连接查询:

    Course.joins(categories: :tags).where(categories: {title: ['array condition']}, tags: {tag: ['array condition']})
    

    【讨论】:

    • 我认为此查询返回的课程标记为“日语”“语言”。我们需要查询返回标记为“日语”“语言”的课程
    • 哎呀,我的错,我已经编辑了我的答案,请检查它是否有效
    • 我不确定“数组条件”是什么,但这个查询对我不起作用Course.joins(categories: :tags).where(categories: {title: ['Japanese', 'Language']}, tags: {tag: ['Japanese', 'Language']})
    • 这里就是你要查询什么信息,比如是['Japanese', 'Language'],运行这个查询后能得到什么,空结果或者错误,你检查你的数据是正确,要检查标签的列是否正确,我只是假设标签列名称是tag,但我不确定你的表格是否正确
    猜你喜欢
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 2020-01-30
    • 2013-04-12
    • 1970-01-01
    • 2022-08-04
    • 2021-08-10
    • 1970-01-01
    相关资源
    最近更新 更多