【问题标题】:Query has_many Rails查询 has_many Rails
【发布时间】:2014-10-17 04:45:36
【问题描述】:

我有一个包含许多多态附件的帖子模型。附件可以是文本模型、照片模型、问题模型或视频模型。一个帖子可以有多个附件,因此它可以有一个文本附件和一个照片附件。尝试仅检索文本和问题帖子时出现了我的问题。如果我执行以下操作,那么它会返回所有带有文本附件的帖子,包括照片帖子。这样做的问题是它返回带有照片附件和文本附件的帖子。我想检索只有文本附件或问题附件而没有其他附件的帖子。我该怎么办?

这是我目前使用的查询:

Post.joins(:attachments).where("attachments.media_type IN (:types)", user_id:types:["Text", "Question"])

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    如果media_type 是存储模型类名称的列,即:TextQuestion 等,那么您的代码几乎是正确的,需要进行非常小的修改才能使其工作:

    Post.joins(:attachments).
         where(:attachments => {:media_type => ["Text", "Question"]})
    

    【讨论】:

      猜你喜欢
      • 2013-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多