我有以下设置:
Table.rb
belongs_to: table
Order.rb
order
boolean
表的finished
值为collection_select(:order, :table_id, Table.all, :id, :table, prompt: false)
,我有这个脚本:
if all orders for this table have order.finished == true OR if it doesn't have any orders at all { list that table }
我需要做的只是选择那些包含所有订单完成订单的表。所以
GET 6032176243294?fields=object_type,thumbnail_url,object_story_id
{
"object_type": "SHARE",
"thumbnail_url": "https://biglongurl.com",
"id": "6032176243294"
"object_story_id": "1234_5678"
}
我怎么能这样做?
答案 0 :(得分:1)
你需要在table.rb中创建一个方法,它返回那些有订单并已完成的表或那些没有订单的表。
def self.table_with_finished_or_no_orders
Table.joins("left join orders on orders.table_id=tables.id).where("orders.finished = ? OR orders.table_id is NULL", true)
end
您将在此类视图中调用此方法
collection_select(:order, :table_id, Table.table_with_finished_or_no_orders, :id, :table, prompt: false)
我想我的查询是根据您的要求。