อันนี้เป็นเกล็ดเล็กน้อยๆ ที่ผมเคยใช้ใน Model นะครับ

ยกตัวอย่างเช่นถ้าเรามี Column “Flag” อยู่ใน Modle Message

เรากำหนดให้

ถ้า Flag Status เป็น

0 = not delete

1 = deleted

2 = …..

ประมาณนี้นะครับ เพราะฉะนั้นเวลาเราเขียนโค้ดก็จะทำให้โค้ดของเราอ่านยาก

Message.update_atrribute(:flag, 1)

ซึ่งเวลาที่คนอื่นมาอ่านโค้ดเรา ก็จะไม่เข้าใจว่า 1 คืออะไร

ในการใช้ Enum เข้ามาช่วยนั้น เราจะใส่ Enum ไว้ในส่วนของ Model ครับ

class Message < ActiveRecord::Base
# Set Enum for flag column
NOT_DELETE = 0
DELETED = 1
.....
end

หลังจากนั้นเวลาเราเรียกใช้ใน controller เราก็จะสามารถเรียกได้แบบนี้ครับ

Message.update_atrribute(:flag, Message::DELETED)<br />

ที่นี้เวลาใครมาอ่านโค้ดเรา ก็จะสามารถที่จะเข้าใจได้เลยว่า set flag ให้เป็น deleted นั่นเอง