Mant-to-many通过浏览器RPG游戏中的关联

时间:2013-12-01 05:19:31

标签: ruby-on-rails

我正在创建一个浏览器RPG文本游戏,用户将拥有一个英雄。这个英雄将有一个可供选择的路径。它会像RPG类(向导,战士等)一样工作(我不得不将名称更改为PAth,因为无法使用类)。

我的模型现在设置如下:

class Hero < ActiveRecord::Base

belongs_to :user
belongs_to :race
belongs_to :path
end

和路径:

class Path < ActiveRecord::Base

has_many :heros //Need to fix this to Heroes
end

直到这里,一切正常。但我希望英雄可以拥有基于英雄之路的技能。

路径会有很多技能,因为英雄在路径上,他可以通过路径类获得这些技能......但是因为他属于班级,我有点困惑。

例如......战士PAth将拥有Bash技能。如果英雄来自战士之路,他也可以拥有这项技能。但是这些技能会有自己的用户相关属性...因为用户可以拥有1级的Bash技能,而另一个coiuld拥有LVL 2 ...

所以我想了解在这种情况下我能采用的最佳方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

它完全按照你的描述工作:

通过创建

创建另一个连接到Path的类Skill
has_many: skills

在您的路径模型中,您现在可以通过您的路径访问技能:

class Hero < ActiveRecord::Base
  belongs_to :user
  belongs_to :race
  belongs_to :path

  has_many :skills through: :path
end

您访问它们的方式是写一些类似

的内容
@hero.skills