Ruby on rails 多态性是最好的选择吗?

Ruby on rails 多态性是最好的选择吗?,ruby-on-rails,Ruby On Rails,嘿,伙计们,我正在创建一个浏览器游戏,其中怪物和用户之间的战斗(pvp)发生。怪物模型具有与怪物战斗相关的所有功能。我现在正在创建PvP系统,战斗系统和怪物一样。所以,我在考虑创建某种抽象的战斗演示,也许是一个可战斗的模型(?),并建立一个多态关联 你认为这是我应该遵循的策略,还是我可以用更好的方式来做?我想说的是,你应该创建一个战斗类或模块,你可以从你的Person和Monster类继承或包含在其中,但你不应该将多态关联持久化到数据库中。你应该只使用两张桌子:人和怪物 module Comba

嘿,伙计们,我正在创建一个浏览器游戏,其中怪物和用户之间的战斗(pvp)发生。怪物模型具有与怪物战斗相关的所有功能。我现在正在创建PvP系统,战斗系统和怪物一样。所以,我在考虑创建某种抽象的战斗演示,也许是一个可战斗的模型(?),并建立一个多态关联


你认为这是我应该遵循的策略,还是我可以用更好的方式来做?

我想说的是,你应该创建一个战斗类或模块,你可以从你的Person和Monster类继承或包含在其中,但你不应该将多态关联持久化到数据库中。你应该只使用两张桌子:人和怪物

module Combatant ... end class Person < ActiveRecord::Base include Combatant ... end class Monster < ActiveRecord::Base include Combatant ... end 模块战斗员 ... 结束 类Person
class Combatant
如果是同一个作战系统,应该使用相同的代码来运行它。重新设计相同的代码,或者复制和粘贴代码并在两个地方进行维护都没有用,这只意味着更多的bug。你还没有理解我的问题。当然,代码是相同的,但它驻留在Monster模型中,因为它引用Monster。我不想在pvp战斗中使用怪物模型调用。学习OOP,这就是继承的目的。它不应该在monstor模块中,而是一个通用的共享模块。学习Rails,因为你完全不知道你在说什么。我敢打赌,根据你的回答,你甚至不知道Rails是什么。我必须承认,这听起来像是一条路要走。事实上,我只想要一个怪物和一个人模型。感谢一个希腊人,感谢另一个希腊人;)
class Combatant < ActiveRecord::Base
  # Has all the fields we care about and basic damage rules, etc
end

class Person < Combatant
    # Any functions that only players can do
end

class Monster < Combatant
    # any functions that need to be overridden
end