您好我想在Rails中创建一个关系。
我有战士模型,法师模型和派系模型。
我想创建一个这样的关系:
warrior model can have_many factions
mage model can have many factions.
Faction model can have many warriors and mages
如何创建战士和法师对象与派系对象之间的关系,这将存储属于特定派别/派系的战士和法师的id_s?
所以当我打电话时:
faction.warriors I get warriors of specific faction.
faction.mage I get mages of this faction
warriors.faction I get the warrior faction.
mage.faction I get the mage faction.
我在考虑多态关联。但它只有一个所有者。
有任何线索吗?
答案 0 :(得分:0)
如何创建战士和法师对象与派系对象之间的关系,这将存储属于特定派系/派系的战士和法师的id_s?
Warrior
has_and_belongs_to_many :factions
Mage
has_and_belongs_to_many :factions
Faction
has_and_belongs_to_many :mages
has_and_belongs_to_many :warriors
答案 1 :(得分:0)
你是否想要一个many_to_many或has_many关系并不是很清楚。
但是你在这里写的是:
派系。战士我得到了特定阵营的战士。 faction.mage我得到了这个派系的法师 warriors.faction我得到了战士派系。 mage.faction我得到了法师派。
看来您只需要一个简单的关联。如果这是正确的,您的课程应如下所示:
class Warrior < ActiveRecord::Base
belongs_to :faction
end
class Mage < ActiveRecord::Base
belongs_to :faction
end
class Faction < ActiveRecord::Base
has_many :warriors
has_many :mages
end
干杯!