gpt4 book ai didi

ruby 去除公共(public)元素集合

转载 作者:数据小太阳 更新时间:2023-10-29 08:27:06 27 4
gpt4 key购买 nike

我有三个类:用户、订阅和计划。我想加载用户没有的所有计划。在 Rails 中执行此操作的最佳方法是什么?

我有两个集合:current_user.subscriptionsPlan.where(active: true)我正在使用 mongoid

def dashboard
@plans = Plan.where(active: true)#.each { @plans.delete_if has_current_user_plan subscription.title }
end

def has_current_user_plan(name)
current_user.subscriptions.where(title: name, active: true).exists?
end
class User
has_many :subscriptions
class Subscription
belongs_to :plan
belongs_to :user
class Plan
has_many :subscriptions

最佳答案

增强现实:

class User < ActiveRecord::Base
has_many :subscriptions
has_many :plans, through: :subscriptions # !!!
end

Plan.where(active: true).where.not(id: current_user.plans)

我不太确定什么是 Mongoid 的最佳方法,因为我从未使用过它。根据我从文档中收集到的信息,虽然我没有运行代码,但类似以下内容可能会起作用。

Plan.where(active: true).not_in(_id: Subscription.where(user_id: current_user.id).pluck(:plan_id))

关于ruby 去除公共(public)元素集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25575828/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com