Ruby on rails 如何建立一个多态的有很多:通过?

Ruby on rails 如何建立一个多态的有很多:通过?,ruby-on-rails,model,associations,polymorphic-associations,Ruby On Rails,Model,Associations,Polymorphic Associations,我很难找到建立这个协会的正确方法 我有3个模特:音乐家、乐队和经理。每个人都有一个与之相关的“水平”(压力、快乐等) 但我不知道如何正确地将我的水平与其他3个相关联 需要有一个中介模型来连接不同项目的级别,并设置当前级别的位置 我需要某种多样性吗?我到底是怎么设置的?我还需要其他类型的关联服务吗 我以前也问过类似的问题,但在解释我要做的事情时做得非常糟糕,所以这是我的第二次尝试。ItemLevel需要一个类型来知道它与什么相关: class ItemLevel < ActiveRecor

我很难找到建立这个协会的正确方法

我有3个模特:音乐家、乐队和经理。每个人都有一个与之相关的“水平”(压力、快乐等)

但我不知道如何正确地将我的水平与其他3个相关联

需要有一个中介模型来连接不同项目的级别,并设置当前级别的位置

我需要某种多样性吗?我到底是怎么设置的?我还需要其他类型的关联服务吗


我以前也问过类似的问题,但在解释我要做的事情时做得非常糟糕,所以这是我的第二次尝试。

ItemLevel需要一个类型来知道它与什么相关:

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
class Level < ActiveRecord::Base
    belongs_to :item_level
end
class ItemLeveltrue
有很多:层次
结束
类
然后,级别只需要知道它与哪个ItemLevel关联:

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
class Level < ActiveRecord::Base
    belongs_to :item_level
end
类级别 如果您想要严格,您应该在您的级别模型中进行一些验证,以检查它是否具有ItemLevel和正在实例化的类型