วันนี้จะว่าด้วยเรื่อง Ruby บ้าง
(เนื่องจาก Rails ใช้ Ruby ดังนั้นจึงหลีกไม่พ้น ที่เราต้องเรียนรู้ syntax ของ ruby)
หัวข้อที่หลายคนสับสนในตอนเรียน Rails
ก็คือ การเรียกใช้ method ของ Model จาก controller
เช่น สมมติเรามีหน้าจอที่แสดงสินค้าทั้งหมดที่เรามี
ในฝั่ง controller ก็จะเขียนประมาณนี้
def index
@products = Product.find(:all)
end
Product
ที่เห็นใน code ก็คือ ชื่อของ Class ที่เราประกาศเป็น model ไว้ส่วน
find
ก็คือ class method ของ Product
class method ก็คือ method ที่เรียกใด้จาก Class ตรงๆ
ส่วน instance method ก็คือ method ที่เรียกจาก object
ลองดูตัวอย่าง
class Dog
def initialize(name)
@name = name
end
def say
"hong"
end
def Dog.myDog()
Dog.new("bogy")
end
end
ในตัวอย่างข้างบน method
say
ก็คือ instance methodส่วน method
myDog
ก็คือ class methodเวลา run ก็จะเป็นแบบนี้
irb(main):033:0> d = Dog.myDog
#<Dog:0x58f14 @name="bogy">
irb(main):034:0> d.say
"hong"
Syntax ของ ruby กำหนดไว้ว่า
ชื่อ class ต้องขึ้นต้นด้วยตัวใหญ่
ส่วนชื่อ method ไม่ได้บังคับ แต่ส่วนใหญ่นิยมใช้ตัวเล็ก
ส่วน Syntax ของการประกาศ class method
มีทั้งหมด 4 แบบใหญ่ๆ
อ่านได้ในเอกสาร ClassMethods
(อ่านถึงตรงนี้ แฟนๆ python คงโห่กันใหญ่แล้ว
อะไรกัน simple แค่นี้ ทำไมต้องเขียนได้ตั้ง 4 วิธี)
No comments:
Post a Comment