Displaying articles with tag actionpack

Ruby on Rails :: ActionPack

Posted by PunNeng, Thu May 25 22:39:00 UTC 2006

มาต่อจากคราวที่แล้วนะครับ มันยังไม่จบ แต่อันนี้คงจะสุดท้ายละครับ ก่อนที่จะขึ้นวิธีติดตั้ง Rails

คราวที่แล้วเล่าไปถึงชุด AciveRecord แล้วก็ส่วนของ model ไปบ้าง แต่คราวนี้มานึกถึงส่วนของ controller กับ view ดูบ้าง สองส่วนนี้จะว่าไปแล้ว มันก็เกี่ยวเนื่องกันอยู่ตลอด ฝั่ง controller ส่งค่าบางอย่างกลับไปให้ฝั่ง view แสดงผล แล้วก็รับ event และข้อมูลบางอย่างกลับมาจากฝั่ง view จะเห็นได้ว่า มันต้องทำงานอยู่ด้วยกันตลอด มันเลยโดน pack เข้าอยู่ชุดเดียวกันซะเลย คือ Action Pack

ถ้าจะคิดว่าเจ้า Action Pack นี้ มันรวมส่วนของ contoller รวมกับ view แล้วมันจะยุ่งเหยิงละก็ คุณคิดผิดถนัด แต่มันกลับถูกแยกส่วนออกมาอย่างเห็นได้ชัด มาดูกัน

View Support

ใน Rails ส่วนของ view จะมีหน้าที่แสดงส่วนทั้งหมดหรือว่าบางส่วนของหน้าเว็บๆ นึง อย่างง่ายสุดๆ ก็คือพวก static text ทั้งหลาย หรือให้มันหรูมาหน่อย อยากจะให้มันมีความ dynamic มากขึ้น ก็ต้องอาศัย action ใน controller ช่วยแล้ว ซึ่งส่วนที่ dynamic ตรงนี้ มันจะถูก generate มาจาก template ซึ่งมีวิธีการทำ 2 ทางคือ อย่างแรก โดยการ embed code บางส่วนของ ruby เข้าไป ที่เราเรียกว่า ERb(Embedded Ruby) ซึ่งวีธีนี้ จะคล้ายๆ กับคนที่เคยทำ php หรือ jsp มา คือสามารถสั่งให้ code นั้นทำงานได้เลยบนฝั่งของ view แต่มันก็ดูผิดวิสัยของ MVC ก็ต้องมาดูกันตามความเหมาะสมละครับ ยืดหยุ่นหน่อยก็ดี งานจะได้สะดวก แต่มันก็ยังจะมีส่วนของ Active Code ที่ไว้ทำบนฝั่ง view โดยเฉพาะที่ถูกตามหลักของ MVC เหมือนกัน เดี๋ยวค่อยมาตามๆ ดูกันต่อนะครับ

อีกทางหนึ่งก็คือ builder-style veiws อันนี้จะให้เราสร้าง XML โดย Ruby แล้วมันจะดึงของมันเอง อย่างอัตโนมัติ อันนี้เดี๋ยวค่อยมาดูกันอีกที(ติดไว้หลายอย่างแล้วแฮะ)

Controller

Controller ของ Rails จะเป็นศูนย์กลางของการควบคุมทั้งหมด มันเป็นตัวคอยเชื่อระหว่างฝั่ง view กับฝั่ง model แต่การทำงานของมันจริงๆ จะเหมือนกับการทำงานข้างหลังฉาก คือ มันจะมี api สำหรับทำนั่น ทำนี่ แล้วข้างใน api นี้ ถึงจะเป็น code จริงๆ ที่มันทำงาน ที่เป็นแบบนี้ เพราะผู้สร้างต้องการให้นักพัฒนาทั้งหลาย ตั้งใจกับส่วนของการทำงานหลักๆ อย่างเดียว ส่วนหยุมๆ หยิมๆ เราจัดให้ มันเลยทำให้ controller ของ Rails ดูจัดง่าย ดูแลง่าย เพิ่มเติมก็ง่าย

ยังมีส่วนอื่นๆ อีกเช่น

  • จัดการพวก request ต่างๆ
  • จัดการ cache
  • จัดการตัวช่วย เช่นพวก help module ที่มันไม่สามารถสร้างบนฝั่ง view ได้
  • จัดการ session

ยังมีอีกเยอะครับ ฝั่ง controller ไว้ต่อกันคราวต่อไป

แก้ไขล่าสุด วันที่ 5 กรกฏาคม 2550 เวลา 2.04 น.

0 comments | Filed Under: Ruby on Rails | Tags: actionpack

codegent: we're hiring