我想合併兩個ActiveRecord :: Relation數組來將跨越問題和答案的搜索結果放在一起。我需要結果以單個ActiveRecord :: Relation數組的形式出現,以便我可以進一步操縱它。合併ActiveRecord ::具有不同列的關係數組
下面是代碼:
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?我該怎麼做?
謝謝,但我特別試圖以ActiveRecord :: Relation數組的形式得到答案。 – dmanaster
您是否嘗試添加has_many並且屬於模型中的關係 –
模型已經具有has_many和belongs_to關係。我沒有看到相關性。 – dmanaster