Rails チュートリアルを(12章まで)進めた

内容的には11章の延長みたいな章だった。

初出ではないけれど、今回はコールバックメソッドに感銘を受けた。

コールバックメソッド

「before_actionってrubyの仕組み?railsの仕組み?」と疑問に思って調べてみたところ、railsの仕組みらしい事がわかった。 「modelのbeforeなんたらと言い、言語仕様に無いのにどんな魔法を使って実現してるんだ?」…と思ったけど、たぶんControllerの場合はルーティングの際に仕掛けを仕込んでいて、Modelについてはそもそも共通メソッドのsave等に限定してるから実現可能なのか。ということはControllerのメソッドを直接叩いたら作動しないのかな。

だんだんとrubyメタプログラミングが強いと言われている事に、実感が追いついてきた。
言語仕様だけではなく、文化的なところもあるのかも知れない。

追記

コールバックメソッドの仕組みは「言語仕様に無い」と思ってたけど、もしかしたらちょっと違うかもしれない。

www.techscore.com

rubyに標準で備わっているalias_methodの仕組み(を応用したalias_method_chain)を使っているのかも知れない。

もしくはこっち?

tech.ga-tech.co.jp

うーん分からない。
コールバックメソッドの正体について、もうちょっと詳しく調べてみよう。