我有三个看起来像这样的模型
class Twit < ApplicationRecord
belongs_to :user
has_many :retwits, foreign_key: :twit_id, class_name: "Retwit", dependent: :destroy
has_many :mentions, dependent: :destroy
validates :body, presence: true, length: { maximum: 280 }
end
class Retwit < ApplicationRecord
belongs_to :twit, foreign_key: :twit_id, class_name: 'Twit'
belongs_to :retwiter, foreign_key: :retwiter_id, class_name: 'User'
validates :twit, uniqueness: { scope: :retwiter }
end
class User < ApplicationRecord
has_many :twits, dependent: :destroy
has_many :retwits, foreign_key: :retwiter_id, class_name: 'Retwit', dependent: :destroy
end
我想在其中(twit.user = some_user或retwit.retwiter = some_user)查询Twits和Retwits。我正在使用以下代码进行查询,但是它变成了数组,因此我无法在其上使用用户ActiveRecords收集方法:
(Twit.where(user: people) + Retwit.where(retwiter: people))
我想像这样使用ActiveRecords收集方法:
(Twit.where(user: people) + Retwit.where(retwiter: people)).offset(0).limit(5)
这是行不通的,因为将两个查询加在一起会返回一个数组。 是否可以在一个查询中返回Twits和Retwits的集合?如果可以,怎么办?