次のコードがあり、リクエストを mysql クエリに変換したいと考えています。現在、データに対して手動の .select (配列メソッド) を使用して目的の結果を達成しています。これは、単一のクエリで可能です (間違っている場合は修正してください)。
現在のコード:
def self.active_companies(zip_code = nil)
if !zip_code
query = Company.locatable.not_deleted
else
query = Company.locatable.not_deleted.where("zip_code = ?", zip_code)
end
query.select do |company|
company.company_active?
end
end
# Check if the company can be considered as active
def company_active?(min_orders = 5, last_order_days_ago = 15)
if orders.count >= min_orders &&
orders.last.created_at >= last_order_days_ago.days.ago &&
active
return true
else
return false
end
end
説明: 活動している企業を知りたいです。会社モデルと注文モデルがあります。
データ: 会社:
- アクティブ
- オーダー (関連付けられたオーダー)
注文:
- created_at