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