研究室にて良さげなrails本がありましたので借りてきました。
amazonのレビューを見ていてもべた褒めの嵐だったのでwktkしながら勉強を始めたいと思います。
尚、備忘録として記録しているので適当に抽出したり間違っていたりするかもしれません。
・Railsの基本概念
RailsにはDon't Repeat Yourself(繰り返しを避けよ)とConvention over Configuration(設定より規約)という2つの基本概念があります。
まずDon't Repeat Yourselfについては、何かを記述する際には1ヶ所だけの記述だけで良いという点が挙げられる。
次にConvention over Configurationについては、規約に従っていくだけでアプリケーションが出来ていくという規約中心でのアプリケーション作りを表しています。
・第2章 はじめてのRails
Railsが使用している概念としてMVC(モデル・ビュー・コントローラ)があります。
これはそれぞれモデル・ビュー・コントローラの3つに分けて設計を行うというものです。
- モデル
アプリケーションの状態を保持するためのコンポーネント。
一時的な状態から永久的な状態までを保持する。
モデルが制約をするので門番としての役割とデータストアとしての役割を持つ。
- ビュー
モデルに格納されているデータに基づいてユーザインターフェイスを生成する。
- コントローラ
アプリケーション内の調整役。
外部からのイベント(ユーザ入力)を受け取り、モデルとやり取りをし、適切なビューをユーザに表示する。
一連の動作
- 指定URLへアクセス
- URLを分解しコントローラへ
- コントローラがモデルとやり取り
- コントローラがビューを起動
- ビューがブラウザの次の画面をレンダリング
第2章まとめ
モデル←→コントローラ→ビュー→ブラウザ
・第4章 Hello,Rails!
実際にアプリケーションの作成に移る。
>rails demo
でdemoというアプリケーションを作成。
第4章ではappとscriptの2つのディレクトリのみ使用。
>ruby script/server
でアプリケーションの実行。
・Hello,Rails!を実装してみる
>ruby script/generate controller Say
script内にあるgenerateを使ってコントローラーSayを作成。
app/controllers内にあるsay_controller.rb
class SayController < ApplicationController end
SayControllerがApplicationControllerを継承していることが分かる。
次にsay_controller.rbを以下のように改造。
class SayController < ApplicationController def hello end end
そして、http://localhost:3000/say/helloにアクセスすると「Template is missing」というエラーが発生する。
原因は何を表示すべきかを指定していないためである。
app/views/sayディレクトリ内にテンプレートとしてhello.rhtmlを作成する。
<html> <head> <title>Hello,Rails!</title> </head> <body> < h1 >Railsからこんにちは!< /h1 > </body> </html>
これにて先ほどのURLをリロードするとRailsからこんにちは!と表示されました。
本日はここまで。