よちよち.rbでコントローラーのアクションについて学びました
第13回よちよち.rbに参加しまして、今日は主にControllerの動きを学びましたので、内容を纏めたいと思います。
教材
第2章 デモアプリケーション | Rails チュートリアル 2.2.2 MVCの挙動 あたり
学んだこと
RESTについて
コラム2.2REpresentational State Transfer (REST)のあたりから、RESTという単語が出てきました。
URLによって何をするのか(しているのか)分かりやすくするもの、みたいな感じかなと思いましたが、正直、正体がよく分からなかったです。
よちよちの中でも答えは出ず、名著「Amazon.co.jp: Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus): 山本 陽平: 本」の読書会をしましょうか、という話になりました。
こちらの本は持っているし、一応読んだはずなのですが、、、改めて読みたいと思います。
Controllerの動きについて
リスト2.4 デモアプリケーションのユーザーindexアクションを整理したもの。を見てみると、indexのアクションで定義されているのは、@users = User.all
だけなんですよね。
一方で、図2.11RailsにおけるMVC。を見る限り、Controllerはmodelからデータを取得するだけではなく、Viewを呼び出して、ViewからHTMLを受け取り、そしてFireFoxにHTMLを渡すところまでやっています。
@users = User.all
がmodelからデータを取得する、っていうのは多分そうなんだろうな、と思えますが、Viewにデータを渡してHTMLを受け取るっていうのが、ここに書いてあるとはとても思えない。
となると、継承しているApplicationController
とかに秘密があるのかな、と思って調べてみようと思いましたが、ちゃんと追うことは出来ませんでした。。。。
なので、その疑問をよちよち内でぶつけたところ、
アクションからテンプレートを呼び出す - Ruby on Rails入門
こちらのリンクを紹介して頂きました。
要するに、Railsで何かのアクションが呼ばれた場合、基本デフォルトで「アクション名.html.erb」を読みに行くみたいですね。
(※正確には「.」の前がアクション名と一致していれば良いみたいなので、「.html.erb」でなくても良いみたいですが)
この辺りが噂に聞く、Railsの規約とも関わるのでしょうか。まだ何となくルールが分かっただけなので、引き続き理解を深めていきたいと思います。
その他参考になったこと
リファレンス先
色々継承しているクラスのこととか知りたい時に、何を見るのが適切か、ということでリファレンスを教えていただきました
Ruby on Rails APIリファレンスを見るツール
さらに、色々なリファレンスを見るためのMacのアプリで
Dash for OS X - API Documentation Browser, Snippet Manager - Kapeli
というツールがあるのも教えて頂きました。これは便利!!