วันศุกร์, มิถุนายน 22, 2550

อ่าน Agile Web Development with Rails ( 8 )

ทีนี้ลองดัดแปลง cart ให้มีส่วนของจำนวนสินค้าด้วย

เพิ่ม model ดังนี้ app/models/cart_item.rb

class CartItem
attr_reader :product, :quantity
def initialize(product)
@product = product
@quantity = 1
end
def increment_quantity
@quantity += 1
end
def title
@product.title
end
def price
@product.price * @quantity
end
end


แก้ไฟล์ app/models/cart.rb เพิ่ม mothod นี้

def add_product(product)
current_item = @items.find {|item| item.product == product}
if current_item
current_item.increment_quantity
else
@items << CartItem.new(product)
end
end

แล้วแก้ app/views/store/add_to_cart.rhtml ให้เป็นดังนี้

Your Pragmatic Cart
<ul>
<% for cart_item in @cart.items %>
<li><%= cart_item.quantity %> × <%= h(cart_item.title) %></li>
<% end %>
</ul>

แก้เสร็จแล้วต้อง
rake db:sessions:clear
เพื่อล้างข้อมูล sessions เก่าที่เก็บไว้ใน database

ตอนนี้สั้นๆแค่นี้เอง ถือว่าพักผ่อน

ไม่มีความคิดเห็น: