我可以为belongs_to关联添加包含扩展吗?

我无法获得belongs_to关联以急切加载它的孩子。 我有:

 class User  { includes :campaign_shirts, :arts, :selected_campaign_shirt } belongs_to :selected_campaign, {class_name: "Campaign", inverse_of: :user}, -> { includes :campaign_shirts, :arts, :selected_campaign_shirt } end 

这导致:

 // GOOD u.campaigns.first.campaign_shirts.first.to_s => "#" u.campaigns.first.campaign_shirts.first.to_s => "#" // NOT GOOD u.selected_campaign.campaign_shirts.first.to_s (queries db) => "#" (queries db) u.selected_campaign.campaign_shirts.first.to_s => "#" 

我是否与这个问题发生冲突? 有没有办法实现我想要的,这是能够引用current_user.selected_campaign并有热切加载/冻结current_user.selected_campaign.campaign_shirts.first等?

尝试在其他关联选项之前移动lambda范围,如下所示:

 # app/models/users.rb belongs_to :selected_campaign, -> { includes :campaign_shirts, :arts, :selected_campaign_shirt }, {class_name: "Campaign", inverse_of: :user},