我試圖在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
我有投票最多隻是標題 –