繁体   English   中英

通过与where子句关联的ActiveRecord

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM