【发布时间】:2020-06-15 17:41:11
【问题描述】:
我有一个Question 模型和一个Answer 模型。 Answerbelongs_toQuestion 并有一个date 列。
我正在制作“给定日期的答案”页面。我正在尝试显示所有Questions,并为每个人显示他们拥有的任何答案,其中“答案”。“日期”是给定的日期。
我尝试过的
@questions = Question.includes(:answers).
where('answers.date = ?', params[:date]).
references(:answers)
当我这样做时,它不会加载该日期没有任何答案的问题。如果我将includes 替换为left_joins,则相同。
我的工作(但效率低下)解决方案
获得所有问题,并获得所需日期的所有答案
@questions = Question.all.to_a
@answers = Answer.where(date: params[:date]).to_a
然后对于每个问题,我搜索@answers 数组
@questions.each do |question|
current_answers = @answers.select { |a| a.question_id == question.id }
# render stuff
end
由于我的问题永远不会超过几百个,因此我并不十分关心这个解决方案,但我想要一个比一遍又一遍地搜索数组更优雅的选择。
【问题讨论】:
标签: ruby-on-rails activerecord