我有兩個模型,分別命名為 "客戶 "和 "會員"。客戶可以有很多會員資格。我想按照客戶的最新會員資格取消日期,以升序或降序顯示客戶。我的查詢是這樣的
@customers = Customer
.joins('LEFT JOIN memberships on memberships.customer_id = customers.id' )
.包括(:partner, :affiliate, active_membership: :plan)
.group('customers.id')
.order('memberships.created_at DESC, memberships.cancelled_at DESC')
.page(params[:page])
.per(100)
uj5u.com熱心網友回復:
class Customer
has_many :memberships
def self.order_by_latest_membership
left_joins(:memberships) # no need to use a SQL string
.group(:id) # 你只需要到 group by customer.id
.order(Membership.arel_table[:created_at].max.desc) # MAX(memberships.created_at) DESC
end(memberships.created_at)
end end
Customer.order_by_latest_membership
.包括(:partner, :affiliate, active_membership: :plan)
.page(params[:page])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/322761.html
標籤:
