【发布时间】:2013-03-12 13:56:32
【问题描述】:
我有一个这样的 SQL 查询:
select *
from orders
where order_session_id IN (
select id order_status
from order_sessions
where order_status IN (
select id
from order_status_types
where order_status != "Paid"
)
)
这返回了一个哈希值。我用 ruby 编写了它,但我觉得它可以优化。
@orders = []
paid_order_status_id = OrderStatusType.find_by_order_status("Paid").id
OrderSession.where('order_status != ?',paid_order_status_id).each { |unpaid_order|
@orders << Order.find(unpaid_order.id)
}
【问题讨论】:
-
@CoderSeven 你知道 OP 不是在处理 Raw SQL 而是在处理活动记录吗?
-
@CoderSeven 好吧,你没有处理 SQL,所以连接是无关紧要的。 Rails 会自动连接。
Post.find(1).users查找所有具有post_id = 1的用户 -
啊,你知道的越多!谢谢。我熟悉 ORM,而不是 ActiveRecord。
-
您能否将您的模型关联包含在 order、order_session 和 order_status_type 中?
标签: sql ruby-on-rails ruby activerecord