Ruby on rails Rails:如何结合关联和范围

Ruby on rails Rails:如何结合关联和范围,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我想为特定用户获取所有类型为“offer”的TaskInteraction 我有一个用户模型 has_many :task_interactions 以及任务交互模型 belongs_to :user TaskInteraction有一个属性“type”,它可以具有值offer或quick 目前,我正在使用一个范围 scope :offer_interactions, -> { where(type: 'offer') } 我得到了结果 @user.task_interactions

我想为特定用户获取所有类型为“offer”的TaskInteraction

我有一个用户模型

has_many :task_interactions
以及任务交互模型

belongs_to :user
TaskInteraction有一个属性“type”,它可以具有值offer或quick

目前,我正在使用一个范围

scope :offer_interactions, -> { where(type: 'offer') }
我得到了结果

@user.task_interactions.offer_interactions
或者在用户模型中,我可以定义:

def offer_interactions
  self.task_interactions.where(type: 'offer')
end
或者,如果我将范围和报价方法结合起来:

def offer_interactions
  self.task_interactions.offer_interactions
end
问题:

有没有更好的方法达到这个效果


有解决这个问题的方法吗?

您还可以在用户模型中添加一个作用域
具有多个
关系,以便只考虑提供任务的交互:

有很多:提供交互,->{where(type:'offer')},类名称:'TaskInteraction'


然后打电话给
@user。提供互动

谢谢,这就是我要找的。