Rails 3 ......
我有一个控制器..
class OrdersController < ApplicationController
def index
@os_orders = OrlandoOrder.all
@ct_orders = ChicagoOrder.all
end
end
然后我定义了两个模型......
class ChicagoOrder < Order
Order::ActiveRecord::Base.table_name_prefix = 'ct_schema.'
end
class OrlandoOrder < Order
Order::ActiveRecord::Base.table_name_prefix = 'os_schema.'
end
然后是父模型......
class Order < ActiveRecord::Base
end
我想要做的是在多个数据库模式中建立相同的对象订单...
根据日志,sql是正确的......
ChicagoOrder Load(60.7ms)SELECT ct_schema.orders。* FROM ct_schema.orders
然而,它不是加载OrlandoOrder然后加载ChicagoOrder,而是加载指定TWICE的第一个模型。所以在这种情况下,它加载OrlandoOrder两次并运行该sql语句两次并将其加载到@ct_orders而不是ChicagoOrder.all。
我做了本地错误的事吗?我在做什么东西rails并不打算用多个架构?
请告知其他方式,盯着这几个小时,似乎无法谷歌正确的条款,看看是否有其他人分享了我的痛苦......
感谢!!!!!!!!!
答案 0 :(得分:0)
HI, 发生这种情况是因为您在ChicagoOrder和OrlandoOrder中继承了Order模型。 只需通过继承简单的活动记录模型类来编写ChicagoOrder和OrlandoOrder。然后尝试它。