【发布时间】:2011-03-19 03:32:26
【问题描述】:
轨道 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 加载 (60.7ms) SELECT ct_schema.orders.* FROM ct_schema.orders
但是,它不是加载 OrlandoOrder 和 ChicagoOrder,而是加载指定的第一个模型 TWICE。所以在这种情况下,它加载 OrlandoOrder 两次并运行该 sql 语句两次并将其加载到 @ct_orders 而不是 ChicagoOrder.all 中。
我做错了什么?我是否在做一些 Rails 不打算与多个模式有关的事情?
请以一种或另一种方式提出建议,盯着这个看了几个小时,似乎无法用谷歌搜索正确的术语,看看是否有其他人分享了我的痛苦......
谢谢!!!!!!!!!
【问题讨论】:
标签: ruby-on-rails activerecord model ruby-on-rails-3 schema