Одна и та же модель загружается дважды, хотя контроллер определяет две разные модели - PullRequest
0 голосов
/ 21 июля 2010

Рельсы 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,7 мс) SELECT ct_schema.orders. * ОТ ct_schema.orders

Однако вместо загрузки OrlandoOrder, а затем ChicagoOrder, он загружает первую модель, указанную ДВАЖДЫ. Так что в этом случае он дважды загружает OrlandoOrder и дважды выполняет этот оператор sql и загружает его в @ct_orders вместо ChicagoOrder.all.

Я делаю что-то изначально не так? Я делаю то, что рельсы не предназначены для нескольких схем?

Пожалуйста, посоветуйте так или иначе, пялились на это часами и, похоже, не могут гуглить правильные термины, чтобы посмотреть, разделял ли кто-нибудь мою боль ...

СПАСИБО !!!!!!!!!

1 Ответ

0 голосов
/ 21 июля 2010

HI, Это происходит потому, что вы наследуете модель Order в ChicagoOrder и OrlandoOrder. Просто напишите ChicagoOrder и OrlandoOrder, унаследовав простой класс модели активной записи. Затем попробуйте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...