RailsによるアジャイルWebアプリケーション開発 01
Rubyと並行してRailsの勉強を行っている。
「RailsによるアジャイルWebアプリケーション開発」の第一部までのメモ。(〜P46)
MVC
モデル ActiveRecord
アプリケーションの状態を保持する。一時だったり永続(DB)だったり
また、値の門番の役割を行う。20以上のみ許容、など。
何をすべきかを受け取り、それをどのように実行すべきかを知っている。
SQL
RDBは数学の集合論で、オブジェクトはデータと操作
→データ中心、PG中心の二つの考え方ができた
ORM
DBtableをClassにマッピング
テーブル名のクラスがある。テーブルの各行はオブジェクトに対応する。
テーブルの列は、オブジェクトの属性に対応する。
ビュー Action Pack
データ入力を提供する。
表示した時点で役目は終わる。
ERb:ビュードキュメントにRubyコードを埋め込む。
RJS:JavaScriptの断片をサーバ側で作成する。
コントローラ Action Pack
調整役
なお、コントーラの前にルーティングが入る。
何をすべきかをモデルに伝える。ロジックの中枢。
人間にとってわかりやすいURLの処理、キャッシュ、ヘルパーモジュール、セッションの管理。
開発環境
ツール
RailsにはIDEは基本的に不要。リファクタリングのサポートくらいにしか必要が無い。
バージョン管理はGitなどで。
エディタはEmacsやVimやTextMateなどで。HtmlならDreamweaverなどもあり。
必要な要素としては
・erbの書式に対応
・自動インデント
・1〜2回の入力でメソッドのスケルトンを作成
・分散したファイルを移動できる
・補完機能があること
WindowsならE-TextEditor
Aptana:RadRailsはAptanastudioとEclipsで使える。
NetBeansIDE
jEdit、Komodo、Arachnoなど。
Railsアプリの作成
適切なディレクトリ配置が必要。railsコマンドを使う。
script/generate
ruby script/generate controller Say
で、say_controller.rbが作成される。たとえばアクションをhelloとしたとき、
/say/hello でアクセスできるようになる。
sayはSayでもSaYでもsaYでもいけるが、helloは小文字オンリー。
erb
末尾を -%> とすることで、後続の改行文字を出力から削除する。
ヘルパーメソッド<%= h(~~~~) %>とすると、&など、展開されてから渡される。
モード
開発モード(development)では新しいリクエストがくるとソースが自動でリロードされる。
本番ではもちろん無効にするべきだ。(productionにするといい)
詳しくはP587
見本アプリ作成
「時刻はデータであり、データはコントローラからビューに渡されるべき」
viewは装飾がメインと考える。
Railsアプリの基本的な流れ
~~~/cont/act/というURLの場合。
contをコントローラ、actをアクションとみなして、cont_controllerを探しactメソッドを探す。
act内で定義されているインスタンス変数を格納する。
app/viewディレクトリでcontというものを探し、その中でact.html.erbを探す
ERbを使ってact.html.erbを展開する。
結果をブラウザに返す。
その他
・link_toメソッド
<%= link_to "string", :action => "actname"%>
とする。
・ヘルパー
テンプレートの作成を簡単にするためのメソッド
・%と%=について
展開しないforやendは=をつけない。
<% for file in *files %> <%= file %></br> <% end %>
ここまでで第一部(〜P46)