В моем приложении для направляющих у меня есть многоуровневая иерархия следующего вида:
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 набор, это пусто. Кто-либо может сказать мне, что я делаю неправильно?
при настройке ассоциаций с моделями наследования отдельной таблицы, вам необходимо обратиться к родительской модели, чтобы ассоциации могли сделать вывод Название таблицы. Итак, в вашем гараже
класс, который вам нужен:
has_many :vehicles
Если вы хотите ограничить Association в Roadvillux
, вы можете добавить условия:
has_many :vehicles, :conditions => {:type => ['Car', 'Bus']}