【问题标题】:How to query for a list of associated records using Rails 4 + PostgreSQL?如何使用 Rails 4 + PostgreSQL 查询关联记录列表?
【发布时间】:2017-01-16 06:26:04
【问题描述】:

我有以下型号:

Question.rb
  has_many :answers
end

class Answer.rb
  belongs_to :question
end

我想要做的是获取最近的 10 个答案,并显示“最近回答的问题”列表

如果我查询提供答案的Answer.last(10),如何以某种方式将最近的答案转换为我可以呈现的@questions 列表?

【问题讨论】:

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


    【解决方案1】:

    显示“最近回答的问题”列表

    你从错误的角度接近它,你应该查询questions表:

    @questions = Question.joins(:answers)
                         .group('questions.id, answers.created_at')
                         .order('answers.created_at DESC')
                         .limit(10)
    

    这将触发 单个 db 查询并立即返回 10 个最近的带有答案的问题。 p>

    【讨论】:

    • map(&:answer) :)))
    • @Ilya 如果我的操作正确,他想列出已回答的问题,而不是答案
    • get the most recent 10 Answers
    • 正确。我正在寻找最近回答的问题的列表。谢谢
    • @AnApprentice 当然,很抱歉缺少查询部分。让我编辑它。添加GROUP BY 会为您解决问题(参见.group('questions.id') 部分)
    猜你喜欢
    • 2014-11-29
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 2016-07-07
    相关资源
    最近更新 更多