【发布时间】:2018-02-18 18:00:06
【问题描述】:
我有两个模型:
问题(id、文本、部分、因素)
答案(id,question_id,selected)
问题 has_many :answers 回答belongs_to :question
我的目标是找到 text 等于答案的 selected 字段的问题因素,我只从答案中搜索
为了表明我的意思是 SQL 给出了我的预期结果
SELECT questions.factor FROM answers INNER JOIN questions
ON questions.text = answers.selected WHERE answers.id = 5
在 Rails 中我尝试使用连接
answers.joins(:question).where('questions.section = 4').where
('answers.selected = questions.text')
但结果并不准确,正如我在控制台导轨中看到的那样,包括相关字段的连接 "questions"."id" = "answers"."question_id"
SELECT "answers".* FROM "answers" INNER JOIN "questions" ON
"questions"."id" = "answers"."question_id" WHERE "answers"."participant_id" = $1
AND (questions.section = 4) AND (answers.selected = questions.text)
好吧,我相信 Ruby 的魅力应该在这里发挥作用,请指教我一些获得想要的结果的绝妙方法。
谢谢。
【问题讨论】:
标签: ruby-on-rails ruby join activerecord