Ruby on rails Rails从ActiveRecord::关系查询中删除模型

Ruby on rails Rails从ActiveRecord::关系查询中删除模型,ruby-on-rails,Ruby On Rails,从查询中动态删除模型的最佳方法是什么?基本上,我想找到用户尚未提供响应的所有活动 下面的方法delete\u at实际上删除了我不想要的模型。我只想从我得到的本地“活动”ActiveRecord::Relation查询集中删除它 def self.appuser_campaigns appuser_id, language appuser = Appuser.find(appuser_id) campaigns = Campaign.check_language

从查询中动态删除模型的最佳方法是什么?基本上,我想找到用户尚未提供响应的所有活动

下面的方法
delete\u at
实际上删除了我不想要的模型。我只想从我得到的本地“活动”
ActiveRecord::Relation
查询集中删除它

def self.appuser_campaigns appuser_id, language
        appuser = Appuser.find(appuser_id)

        campaigns = Campaign.check_language language
        i = -1
        campaigns.each do |campaign|
            i = i + 1
            responses = Response.where(appuser_id: appuser_id, campaign_id: campaign.id)
            if responses.length > 0
                campaigns.delete_at(i)
            end
        end
        puts campaigns.class.name #"ActiveRecord::Relation" 

        campaigns
    end

    def self.check_language language
        campaigns = Campaign.where(language: language, status: "In Progress")
    end

您可以执行以下操作:

already_answered_campaign_ids = Appuser.find(appuser_id).responses.pluck(:campaign_id)
Campaign.where('id NOT IN (?)', already_answered_campaign_ids.presence || -1)

你能把你的模特和关系贴出来吗。您想在特定用户没有响应的地方使用它吗?我之前的回答将帮助您: