模型结构:-
User has_many :subscriptions
Blog has_one :coupon
Subscription has_one :coupon
我要包含表格
User.includes(subscriptions: :coupon, :blogs)
我试图获取所有用户数据,并且仅获取与其对应的有效订阅。
如果我愿意
User.includes(subscriptions: :coupon, :blogs).where(:state => 1).references(:subscriptions)
那我得到的用户只有有效的订阅
那么如何使所有用户都获得预加载的博客优惠券并包含在有效订阅中?
答案 0 :(得分:0)
如果要加载所有用户,包括那些没有任何有效订阅的用户,但是对于每个用户只能访问有效订阅,则需要定义另一个关联ASP.NET Core
。可以通过以下方式完成:
在valid_subscriptions
user.rb
在has_many :valid_subscriptions, -> { valid }, class_name: 'Subscription'
中,定义有效的含义。
subscription.rb
然后您可以查询scope :valid, -> { where(state: 1) }