Rails アジャイル本 第10章 タスクE:チェックアウト!
2010年03月23日
Rails アジャイル本の第10章の自由課題。
save_order, add_line_items_from_cart, from_cart_item メソッドのフロー
save_orderでカートの内容を@cartインスタンスに保存- フォーム送信された値から
@orderインスタンスを作成 @orderインスタンスのメソッドadd_line_items_from_cartによりカートの中身のそれぞれ対応する品目をline_itemsに追加していく。
品目はfrom_cart_itemメソッドで、カートの中身から対応するものを作成する。
チェックアウトボタンを無効化する
最初、checkout メソッド内で @checked フラグを作って button_to ヘルパーの :disabled オプション に渡していたが、@order インスタンスが作られているかどうかによる方法でよかった。
<%= button_to "Checkout", { :action => "checkout" }, { :disabled => !@order.nil? } %>
支払い方法リストのデータベーステーブルへの移動
The Pragmatic Bookshelf | Pt-E-3 の scaffold を使った例を試してみた。
scaffoldでpay_typeテーブルを作るorderテーブルの既存のpay_typeフィールドを削除して、新たにpay_type_idフィールドを作る- 各モデル間の関連付けを行う
pay_typeのバリデーションを修正する- app/views/store/checkout.html.erb テンプレートの
pay_typeフィールドをpay_typeデータベースからのデータで作成する

RailsによるアジャイルWebアプリケーション開発
posted with amazlet at 10.03.15
Sam Ruby David Heinemeier Hansson Dave Thomas
オーム社
売り上げランキング: 29946
オーム社
売り上げランキング: 29946
