has_many с многоуровневой иерархией и единственным наследованием таблицы

В моем приложении для направляющих у меня есть многоуровневая иерархия следующего вида:

class Vehicle < ActiveRecord::Base end
class RoadVehicle < Vehicle end
class Car < RoadVehicle end
class Buss < RoadVehicle end

Затем у меня есть класс, ссылающийся на средний уровень как так:

class Garage < ActiveRecord::Base
  has_many :road_vehicles
end

В этом упрощенном примере я дал таблице механизмов столбец типа для включения единственного наследования таблицы. Кроме того, это содержит garage_id столбец, для включения has_many отношений. Когда я создаю новый гараж и добавляю автомобили и шины, все добавляются к базе данных как ожидалось. Однако, когда я позже получаю гараж, возражают и осматривают road_vehicles набор, это пусто. Кто-либо может сказать мне, что я делаю неправильно?

6
задан Pascal Lindelauf 25 January 2010 в 22:55
поделиться

1 ответ

при настройке ассоциаций с моделями наследования отдельной таблицы, вам необходимо обратиться к родительской модели, чтобы ассоциации могли сделать вывод Название таблицы. Итак, в вашем гараже класс, который вам нужен:

has_many :vehicles

Если вы хотите ограничить Association в Roadvillux , вы можете добавить условия:

has_many :vehicles, :conditions => {:type => ['Car', 'Bus']}
6
ответ дан 17 December 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: