Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. def export
  2. Product.find_by_sql subset.
  3. join(products).on(products[:id].eq order_items[:product_id]).
  4. project(products[Arel.star])
  5. end
  6.  
  7. def subset
  8. order_items.
  9. join(colors).on(colors[:id].eq order_items[:color_id]).
  10. join(orders).on(orders[:id].eq order_items[:order_id]).
  11. join(addresses).on(addresses[:id].eq orders[:address_id]).
  12. group(order_items[:product_id]).
  13. having(order_items[:id].count.gteq 3).
  14. where(red_colored.and during_this_month)
  15. end
  16.  
  17. def products
  18. Product.arel_table
  19. end
  20.  
  21. def order_items
  22. OrderItem.arel_table
  23. end
  24.  
  25. def orders
  26. Order.arel_table
  27. end
  28.  
  29. def colors
  30. Color.arel_table
  31. end
  32.  
  33. def addresses
  34. Address.arel_table
  35. end
  36.  
  37. def red_colored
  38. colors[:code].eq 'red'
  39. end
  40.  
  41. def during_this_month
  42. orders[:created_at].gteq Time.now.beginning_of_month
  43. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement