【问题标题】:rails query not in statement formatting correctrails 查询语句格式不正确
【发布时间】:2017-06-09 19:33:57
【问题描述】:

我这样做:

    check1 = inquiries.select("question_id").where(:membership_id => self.id)

这会返回一个活动记录数组,其中包含如下条目:

#<ActiveRecord::AssociationRelation [#<Inquiry id: nil, question_id: 21113>,

现在我想在第二次查询中选择所有不在查询中的问题

试过这个:

lesson.questions.where("NOT IN ?",check1)

但这不起作用,可能是因为第一个查询返回一个活动记录数组,每个对象有 2 个值?

怎么可能看起来像一个解决方案?

【问题讨论】:

  • 探究和课程之间有什么联系吗?

标签: ruby-on-rails ruby ruby-on-rails-4


【解决方案1】:

利用勇气

check1 = inquiries.where(membership_id: self.id).pluck(:question_id)
#=> [1, 2, 3] # List of ids 

lesson.questions.where("id NOT IN (?)", check1)

# OR 

lesson.questions.where.not(id: check1)

注意:如果您在课程和查询之间有关联,您可以使用joins 并在一个查询本身中获取结果。

【讨论】:

  • 我收到此错误:#<0x000000055b36a0>
【解决方案2】:

您可以尝试以下方法吗?

check1 = inquiries.where(membership_id: self.id).select(:question_id)

lesson.questions.where.not(id: check1)

【讨论】:

    猜你喜欢
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    相关资源
    最近更新 更多