我有一个包含许多多态附件的帖子模型。附件可以是文本模型,照片模型,问题模型或视频模型。帖子可以有多个附件,以便它可以有文本附件和照片附件。尝试仅检索文本和问题帖子时出现问题。如果我执行以下操作,则会返回包含文本附件的所有帖子,包括照片帖子。这个问题是它返回带有照片附件和文本附件的帖子。我想检索只包含文字附件或问题附件的帖子,而不是其他附件。我该怎么做呢?
以下是我目前使用的查询:
Post.joins(:attachments).where("attachments.media_type IN (:types)", user_id:types:["Text", "Question"])
答案 0 :(得分:0)
如果media_type
是存储模型类名称的列,即:Text
,Question
等,那么您的代码几乎是正确的,并且需要进行非常小的修改它的工作原理:
Post.joins(:attachments).
where(:attachments => {:media_type => ["Text", "Question"]})