我试图在rails 4上实现一个STI,但是我无法让它工作,我搜索了很多结果,但都没有工作。这里是问题:我有一个实例类,使用STI我有一个子类Car(一个虚拟子类)和ScheduledInstance类。Rails has_many STI
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,这是行不通的。(我对实例表型列)
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
我有投票最多只是标题 –