我有以下架构:
class Service < ActiveRecord::Base
has_many :orders
class Table < ActiveRecord::Base
has_many :orders
class Order < ActiveRecord::Base
belongs_to :table
belongs_to :service
对于一个service
和一个table
,我有一个order
。
我想要concern
来设置订单。
module CurrentOrder
extend ActiveSupport::Concern
private
def set_order
@order = .......
end
end
找到此订单的干净“铁路”方式是什么?
答案 0 :(得分:2)
假设您有service
和table
个变量分别持有Service
和Table
个实例:
order = service.orders.find_by(table_id: table.id)
答案 1 :(得分:1)
你可以简单地做到这一点
service = Service.first #lets you take first service orders
table = Table.last #lets you take orders of last table
orders = service.orders.where(table_id: table.id)
答案 2 :(得分:1)
理想情况下取决于您的结果。 假设你有table_id和service_id,所以你不必加载table&amp;服务
order = Order.where(table_id: table_id, service_id: service_id).first