簡體   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