ショッピングカート機能を実装する。セッションを使う。フラッシュも。
- セッション
- ステートレスな HTTP プロトコルの上位でステートフルトランザクションの仕組みを擬似的に実現するもの
- Rails では cookie ベースのものがデフォルト => 他のストレージを使う場合は設定変更が必要
- session ハッシュに似てる、コントローラ内でアクセス可能
- private メソッドは action として公開されない
- params オブジェクトにリクエストパラメータが入っている
- 「アプリケーションレベルのオブジェクトをセッションデータに格納するのは、一般には本当に最悪」
- Product の例
- オブジェクトそのものではなく、 primary key などの単純な数値、テキストなどを入れるべき
- flash リクエストをまたがってアクセスできる一時的なデータ置き場、エラーメッセージなど
- 共通のコードはメソッドとして抽出して重複をなくす
- Add session table
- セッションのデータベースストレージを有効に
- セッション データベースストア
- find_cart メソッドを追加
- Cart モデルクラス追加
- view template カートに入れるボタンを押したときに product.id もパラメータで渡すように
- add_to_cart 実装
- template added
- CartItem クラス追加
- add_product メソッドを改良 数量を考慮
- view updated
- 例外処理
- flash notice 埋め込み部分をテンプレートに追記
- CSS
- カートを空にするボタンを追加
- empty_cart アクションを実装
- redirect_to_index メソッドを追加して処理をまとめた 重複はなくす
- template updated
- add total_price method
- CSS
- 自由課題、セッションにカウンターを保持
- 自由課題、訪問数カウントを表示, pluralize
- 自由課題、カートに入れたらカウントをゼロに
- 自由課題、 counter > 5
- RailsによるアジャイルWebアプリケーション開発 第3版
- RailsによるアジャイルWebアプリケーション開発 第3版 (見だし一覧)
- GitHub - kyanny/agile_web_development_with_rails: My practice of "Agile Web Development with Rails 3rd Edition"
RailsによるアジャイルWebアプリケーション開発 第3版
- 作者: Sam Ruby,David Heinemeier Hansson,Dave Thomas,前田修吾
- 出版社/メーカー: オーム社
- 発売日: 2009/12/01
- メディア: 単行本
- 購入: 16人 クリック: 316回
- この商品を含むブログ (39件) を見る