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