Ich habe versucht, eine STI auf Schienen 4 zu implementieren, aber ich kann es nicht funktionieren lassen, ich habe viele Ergebnisse gesucht, aber keine funktionierte. Hier ist das Problem:Schienen has_many STI
Ich habe eine Instanz-Klasse, mit STI Ich habe eine Unterklasse Car (eine Dummy-Unterklasse) und ScheduledInstance-Klasse.
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
Beim Versuch, eine Autos Aufgabe oder eine scheduledinstances Aufgabe zu bekommen, es funktioniert nicht. (I eine Art Spalte Instanz Tabelle haben)
Task.first.cars
Task Load (0.8ms) SELECT "tasks".* FROM "tasks" ORDER BY "tasks"."id" ASC LIMIT 1
NameError: uninitialized constant Task::Car
jedoch, wenn ich Task.first tun .instances und dann Task.first.cars, es funktioniert in Ordnung. Was ich vermisse?
Auch basierend auf Ihrer Antwort, welche Änderungen muss ich anwenden, damit es mit einer has_many funktioniert?
class Project < ActiveRecord::Base
has_many :tasks, dependent: :destroy
has_many :instances, through: :tasks
end
ich für den Titel nur stimmen musste –