私は2つのモデルを持っています:
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 モデルではないためです (またはそうですか?)。同じ質問ではない場合、この継承されたメソッドを適切にグローバル化するにはどうすればよいですか?
あるいは..
私は、私の協会のやり方にアーキテクチャ上の欠陥があるかもしれないことを認めます。2 つのアソシエーションを作成することをお勧めしますか。何が良くなったり悪くなったりするのかわからない。Game
game_type