@kyanny's blog

My thoughts, my life. Views/opinions are my own.

第7章 タスクB: カタログの表示

カスタマーがアクセスする商品一覧ページを作る。

  • 抽象度を持たせてプログラムを作成する
    • コントローラのアクション内にモデルべったりの実装をしない
  • レイアウトを利用してテンプレートを warp する
    • yield :layout, @content_for_layout
  • button_to ヘルパー
    • link_to は HTTP GET, button_to は HTTP POST

RailsによるアジャイルWebアプリケーション開発 第3版

RailsによるアジャイルWebアプリケーション開発 第3版

第6章 タスクA: 商品の管理

商品管理機能を実装する。

  • データベース接続情報
    • config/database.yml
  • scaffold と migration
    • migration ファイルの中で self.up, self.down メソッドを定義する
  • 検証 (validation) はモデルで行う
    • モデルはコードの世界とデータベースの間に立つ門番
    • モデルはデータストア、データへのアクセス、ビジネスロジックの実装を受け持つ
  • データ専用のマイグレーション (開発時の検証用データ挿入など)
  • レイアウト layouts ディレクトリ
  • HTTP メソッド (:method => :delete)

各章の終わりごとに git tag を打っておいてよかった。あとで「何章の範囲のコミットだけ抽出」とかするのが楽にできる。軽いタグで十分なので annotate などは使わず、タグオブジェクトもなし。

RailsによるアジャイルWebアプリケーション開発 第3版

RailsによるアジャイルWebアプリケーション開発 第3版

第5章 Depotアプリケーション

第5章はこれから作る Depot についての概要説明のみ。実作業はないのでパス。

RailsによるアジャイルWebアプリケーション開発 第3版

RailsによるアジャイルWebアプリケーション開発 第3版

第4章 Hello, Rails!

4章からは実践編なのでひたすらサンプルコードを打ち込んだ。なのであんまり拾ってメモすることがない。いくつかマーカーをひいたところもあるので、そこを書きつつ、 github のコミットへの permalink を並べておく。

  • URL
    • /path/to/app/controller/action
  • ERb (ERB)
    • <%= ... %> 値で置き換える
    • <% ... %> ブロックとか
    • -%> (-) 空白を除去
  • ヘルパーメソッド
    • <%=h ... %> HTMLエスケープ
    • <%= link_to ... %> 論理的なリンクの張り方

意味のあるコメントを書いてないとこういうとき困るのだなぁ。

RailsによるアジャイルWebアプリケーション開発 第3版

RailsによるアジャイルWebアプリケーション開発 第3版

第3章 Railsのインストール

インストールの方法だけなので軽く流す。

  • 特定のバージョンの Rails をインストールする
# gem install rails --versioin 2.2.2
  • 新しい Rails アプリケーションを作るときに特定のバージョンの Rails を使うように指定する
$ rails _2.2.2_ --version
  • Rails アプリケーションを作る際に指定した Rails のバージョンは固定される

RailsによるアジャイルWebアプリケーション開発 第3版

RailsによるアジャイルWebアプリケーション開発 第3版