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