Rails Postgres查询的结构

时间:2017-10-03 15:54:52

标签: ruby-on-rails postgresql

所以我仍然想要掌握Ruby& Rails和Postgres,我需要运行一个查询,但不能完全理解如何返回所需的结果

我有以下

订单

订单有很多 #ITEMS //以及 TOTAL_PRICE 变量

#ITEMS 中的

ORDERABLE_ID 变量,该变量引用 #PRODUCT

我也有

用户 用户有很多 #ORDERS

我尝试运行将执行以下操作的查询

检查IF当前USER是否具有包含ORDERABLE_ID == 71且ORDER TOTAL_PRICE>的ITEM的ORDER; 40

OrderItem belongs_to :order 
OrderItem belongs_to :orderable 
Order has many :items, class_name "OrderItem"

1 个答案:

答案 0 :(得分:1)

假设:

  • 具有@product
  • 的变量id = 71
  • 变量@total_price,其值为40
  • 名为current_user
  • 的变量/函数
  • OrderItem belongs_to:order
  • OrderItem belongs_to:orderable,polymorphic:true
  • Order belongs_to:user

然后我相信它会是这样的:

Order.
  joins(:items).
  where(items: {id: OrderItem.where(orderable: @product)}).
  where('total_price > ?', @total_price).
  where(user: current_user).
  any?