我有两个型号:如何从父模型类调用before_save方法?
class Game
before_save :update_teacher
teacher
end
def update_teacher
teacher.update_attribute("something", true)
end
end
class Puzzle < Game
belongs_to :teacher
end
我有很多类型的游戏。当任何游戏完成时,我想update_teacher。
但是,正如你所看到的,游戏不属于任何人。这正是我为所有游戏保留所有全球方法的地方。我永远不需要查询Teacher.games
。相反,我只需要查询Teacher.puzzles
或Teacher.riddles
等等。
正是因为如此,当我来到before_save
方法,我尝试调用teacher
,它会失败,因为teacher
不与game
有关。
那么,如何让我的全局Game类处理这个方法,并仍然引用它的子对象?
还..
我才意识到,这可能before_save实际上不能被调用,因为它不是真实更新游戏模式(是吗?)。如果不是这个问题,我该如何正确地全球化这种继承的方法?
或者..
我承认,有可能是一个建筑的缺陷,以我怎么回事我的关联。有人建议我创建两个协会,甚至只是一个协会从Game
直接与game_type
。不知道什么会更好或更糟。
有趣的覆盖方法。你说他们俩应该和老师有关系。但是在思考DRY实践时,这给了我红色的信号。也许我应该使用'has_many:'游戏'关系来处理'Puzzles'? – Trip
@Trip我不认为我可以肯定地说任何事情,不知道你的游戏/教师/益智的架构如何。这就是为什么我问这个问题的最新情况,包括:) – Draiken
@Trip更新了您可能想要使用的另一种方法的答案。但是我不知道游戏/拼图/老师之间的关系是什么 – Draiken