[英]ActiveRecord through association with where clause
我想为活动的支持者建立一个ActiveRecord关联。
有一个包含3个相关字段的Payments表:
campaign_id, status, backer_id
我只需要支持者具有以下状态之一:授权已收费已释放已拒绝离线
我尝试使用Campaign类中的以下内容执行此操作:
has_many :backers , through: :payments, -> { where payments.status: %w(authorized charged released rejected offline) }
但是它不起作用。 我将不胜感激任何帮助。 如果我需要添加更多信息,请告诉我。
您在where
使用的语法看起来不正确。 如果您更喜欢哈希语法,请使用:
has_many :backers,
through: :payments,
-> { where(payments: { status: %w(authorized charged released rejected offline) }) }
您可以使用范围:
scope :backers_with_status, ->(backers){ joins(backers).where("payments.status IN (?)" %w(authorized charged released rejected offline)) }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.