วันพฤหัสบดี, มิถุนายน 21, 2550

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

ทีนี้ลองปรับเปลี่ยน product ดู
ruby script/generate migration add_price
จะได้ไฟล์สำคัญที่ชื่อ db/migrate/002_add_price.rb
ยังจำได้ไหมว่าครั้งที่แล้วเรา generate model product แล้วได้ db/migrate/001_create_products.rb มา

เลข 001, 002 นี้ Rails สร้างขึ้นเพื่อควมคุมลำดับของการเปลี่ยนแปลง data model

ทีนี้แก้ไข db/migrate/002_add_price.rb ให้เป็นอย่างนี้
class AddPrice < precision =""> 8, :scale => 2, :default => 0
end
def self.down
remove_column :products, :price
end
end

แล้ว rake db:migrate

เรียก http://host_name/admin คงพอเดาได้ไม่ยากนะครับว่าจะเกิดอะไรขึ้น

ทีนี้ลองไปที่ app/models/product.rb แล้วใส่โค้ดเพิ่มเติมเข้าไป

class Product < ActiveRecord::Base
validates_presence_of :title, :description, :image_url
validates_numericality_of :price
validates_uniqueness_of :title
validates_format_of :image_url,
:with => %r{\.(gif|jpg|png)$}i,
:message => "must be a URL for a GIF, JPG, or PNG image"
protected
def validate
errors.add(:price, "should be at least 0.01" ) if price.nil? || price < 0.01
end
end

พระเจ้าจ๊อดมันยอดมากเลยใช่ไหมครับ model มันมีไว้ทำงี้นี่เอง

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