【问题标题】:Custom left join with magic rails getter自定义左连接与魔术轨道吸气剂
【发布时间】:2015-05-05 16:56:11
【问题描述】:

如何将这种查询与 rails 一起使用?

Question.joins("left join answers a on a.question_id = questions.id and a.user_id = #{current_user.id}").select('questions.*, a.*')

然后我想使用 question.answer 或一些神奇的 getter。

【问题讨论】:

    标签: ruby-on-rails activerecord left-join rails-activerecord


    【解决方案1】:

    您可以将使用 JOIN 的查询转换为使用子查询的查询:

    answers = Answer.where(user_id: current_user.id)
    questions = Question.where(id: answers.select(:question_id))
    

    在这种情况下,您可以使用您的 Question 对象及其所有关联:

    questions.each do |question|
      p question.answer
      ...
    

    【讨论】:

    • 你的答案更像是inner join而不是left。
    • 对。在这种情况下,您可以为没有答案的选择问题对象添加 OR 条件,或者为选择此类问题编写额外的 AR 查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 2021-08-31
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 2017-04-19
    • 2020-05-11
    相关资源
    最近更新 更多