Ruby on rails Rails:如何结合关联和范围
我想为特定用户获取所有类型为“offer”的TaskInteraction 我有一个用户模型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
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。提供互动
谢谢,这就是我要找的。