我正在尝试合并两个 ActiveRecord::Relation 数组以将跨越问题和答案的搜索结果放在一起。我需要将结果采用单个 ActiveRecord::Relation 数组的形式,以便我可以进一步操作它。
这是代码:
question_results = Question.where("(body || title) LIKE ?", "%#{@search}%")
answer_results = Answer.where("body LIKE ?", "%#{@search}%").group("question_id")
questions = question_results.merge(answer_results)
当我这样做时,我收到以下错误:
SQLite3::SQLException: no such column: question_id: SELECT "questions".* FROM "questions" WHERE ((body || title) LIKE '%cosby%') AND (body LIKE '%cosby%') GROUP BY question_id
发生这种情况是因为这两个表具有不同的列,特别是因为问题没有 question_id 列。
是否可以将这两个结果合并为一个搜索结果并仍然返回 ActiveRecord::Relations?我该怎么做?