RevieweeCycle
belongs_to的ReviewCycle
,ReviewCycle
的has_many Reviews
(通過其他模式),Review
有一種狀態:創建,保存等RevieweeCycle
完成當他的所有評論ReviewCycle
有其中一個狀態 - 完成或批准。我想找到最後完成RevieweeCycle
。
如何找到一個查詢? 謝謝。
RevieweeCycle
belongs_to的ReviewCycle
,ReviewCycle
的has_many Reviews
(通過其他模式),Review
有一種狀態:創建,保存等RevieweeCycle
完成當他的所有評論ReviewCycle
有其中一個狀態 - 完成或批准。我想找到最後完成RevieweeCycle
。
如何找到一個查詢? 謝謝。
試試這個:
ReviewCycle.where(review_id: Review.where("status is ?", ["completed", "approved"])).revieweecycles.order("updated_at DESC")
使用SQL JOIN語法。
ReviewCycle.joins(:reviews).where(reviews: { status: %w(completed approved) }).order(updated_at: :desc).first
這是
ReviewCycle.joins(:reviews).where(reviews: { status: ["completed", "approved"] }).order(updated_at: :desc).first
或
ReviewCycle.joins(:reviews).where("reviews.status IN (?)", ["completed", "approved"]).order(updated_at: :desc).first
如果我將使用您的版本,那麼一些結果不適合我,例如ReviewCycle有一個審查狀態'已完成'和'未完成'。但我希望ReviewCycles能夠完成所有評論 – piton4eg 2014-11-25 10:49:33
較短版本的用戶問一個查詢。你的代碼觸發兩個查詢。 – 2014-11-25 10:41:54
@SimoneCarletti不用用戶想要上次完成revieweecycles,所以我們需要通過評論得到revieweecycles通過審查週期 – Choco 2014-11-25 10:44:18