我无法找到正确的关联方式。
我有3个模特:音乐家,乐队和经理。每个人都可以有一定的“水平”(压力,快乐等)。
但我不确定如何正确地将我的关卡与其他3关联起来。
需要有一个中间模型,将级别与不同的项目连接起来,并设置当前级别。
我是否需要某种has_many:通过多态?我该如何设置呢?我需要一些其他类型的关联吗?
之前我问了一个类似的问题,但却解释了我想要做的事情,这是我的第二次尝试。
答案 0 :(得分:1)
ItemLevels需要一种类型来了解与之相关的内容:
class ItemLevel < ActiveRecord::Base
# levelable_id :integer
# levelable_type :string(255)
belongs_to :levelable, :polymorphic => true
has_many :levels
end
class Musician < ActiveRecord::Base
has_many :levelables
end
class Musician < ActiveRecord::Base
has_many :levelables
end
class Manager < ActiveRecord::Base
has_many :levelables
end
等级只需知道与之关联的ItemLevel:
class Level < ActiveRecord::Base
belongs_to :item_level
end
如果你想要严格,你应该在你的Level模型中加入一些验证来检查它是否有一个ItemLevel和正在实例化的类型。