我正在使用两个遗留的Windows应用程序,我们将Ruby on Rails应用程序集成在一起。他们的数据库非常糟糕。
在每个中我都有两个不同的表来表示订单。对于一个数据库,我有这些ActiveRecord模型:
CustomerOrder
CustomerOrderCopy
第一个表用于正在进行的订单。第二个表是档案。
通常我必须在两个表中查找订单。
有没有人建议如何让一个ActiveRecord模型代表两个表?意思是,如果在一个订单中找不到订单,请使用另一个。
更新
我使用以下内容从另一个模型引用表中的顺序:
has_one :external_order, foreign_key: :OrderNo, primary_key: :external_ordernumber,
class_name: Visma::CustomerOrder
has_one :visma_order_copy, foreign_key: :OrderCopyNo, primary_key: :external_ordernumber,
class_name: Visma::CustomerOrderCopy
# Return the external order in Visma from it's current table
def visma_order
external_order || visma_order_copy
end
我想知道如何让一个模型代表两个表。
答案 0 :(得分:1)
您是否必须为此
创建一个logicy也许是这样的
#customer_order.rb
def self.search_order(param)
self.where(id: param).first || CustomerOrderCopy.where(id: param).first
end
CustomerOrder.search_order(1)