Я пытаюсь реализовать STI на рельсах 4, но я не могу заставить его работать, я искал много результатов, но никто не работал. Вот проблема:Rails has_many STI
У меня есть класс экземпляра, используя STI У меня есть подкласс Car (подмастерство подкласса) и класс ScheduledInstance.
class Instance < ActiveRecord::Base
belongs_to :task
end
class Car < Instance end
class ScheduledInstance < Instance end
class Task < ActiveRecord::Base
has_many :instances, dependent: :destroy
has_many :cars
has_many :scheduledinstances
end
При попытке получить автомобили Целевых в или scheduledinstances Целевого, она не работает. (У меня есть столбец типа на столе Instance)
Task.first.cars
Task Load (0.8ms) SELECT "tasks".* FROM "tasks" ORDER BY "tasks"."id" ASC LIMIT 1
NameError: uninitialized constant Task::Car
однако, если я Task.first .instances, а затем Task.first.cars, он работает нормально. Что мне не хватает?
Также, на основе вашего ответа, какие изменения необходимо применить, чтобы заставить его работать с has_many через?
class Project < ActiveRecord::Base
has_many :tasks, dependent: :destroy
has_many :instances, through: :tasks
end
мне пришлось голосовать именно на названии –