【发布时间】:2014-08-21 15:24:40
【问题描述】:
我对 Rails 中的关联有疑问。情况如下:
型号:
class Character < ActiveRecord::Base
has_one :character_stats
end
class CharacterStats < ActiveRecord::Base
belongs_to :character
end
现在我需要在创建新角色时创建统计数据。
我现在要做的是,我觉得这是使用 rails 的一种解决方法。有没有更“轻松”的方式来做到这一点?
after_save :character_init
def character_init
create_stats
end
def create_stats
stats = CharacterStats.new
stats.character_id = self.id // this bothers me!
stats.save
end
但我觉得应该是这样的:
stats.character << self
提前谢谢你:)
编辑:
这是我的模型在现实生活中的样子:
def create_stats
race_stats = Race.find(race_id).race_stats
class_stats = RaceClass.find(race_class_id).class_stats
stats = CharacterStats.new
stats.character_id = self.id
stats.health = race_stats.health + class_stats.health
stats.mana = race_stats.mana + class_stats.mana
stats.intellect = race_stats.intellect + class_stats.intellect
stats.armor = race_stats.armor + class_stats.armor
stats.magic_resist = race_stats.magic_resist + class_stats.magic_resist
stats.attack = race_stats.attack + class_stats.attack
stats.defence = race_stats.defence + class_stats.defence
stats.save
self.character_stats_id = stats.id
end
【问题讨论】:
标签: ruby-on-rails join associations