[Ruby on Rails] Nested Model Form Wrapper

Nested Model Form คือ Dynamic Form ที่สามารถเพิ่ม/ลบ จำนวนของ Form นั้นๆ ได้
หน้าตาจะประมาณนี้ครับ :)

ซึ่งวิธีการทำนั้นก็ไม่ยากครับ มีสอนเสร็จสรรพที่ RailsCasts
แต่มันมีวิธีง่ายกว่านั้น เพราะคุณ RyanB เขียน Open-source Wrapper ให้ใช้ และมันใช้ง่ายมาก
เลยจะมาแนะนำครับ :)


ขั้นแรกก็ไปเพิ่ม Gem ที่ GemFile และ include jQuery ที่ application.js ด้วยครับ 
gem 'nested_form'

//= require jquery_nested_form

วิธีการใช้งานนะครับ

ใน Controller ก็สั่ง Build ได้ด้วยนะ แบบอาจจะมีสักอันเพื่อ Guide User ก่อน

จากนั้นใน Form เราจะเขียนแบบนี้
เท่านี้แหละครับ เพราะทาง Developer เค้าจัดการเรื่อง Javascript ให้เราแล้ว :) ใช้ง่ายมาก แนะนำๆ
ส่วนใครใช้ SimpleForm หรือ Formtastic ก็รองรับเช่นกัน 
โดยเปลี่ยน nested_form_for เป็น simple_nested_form_for, semantic_nested_form_for

ถ้าเราจะจำกัดให้ User สามารถเพิ่ม Form ได้จำกัด เช่น ไม่เกิน 5 อันก็มีวิธีเช่นกัน
ให้นำ Script นี้ไปใส่ใน View ที่มี Nested Form อยู่ (กรณีนี้คือมี Nested Form เพียงชุดเดียว)
โดยเมื่อมีจำนวน Field ถึงจำนวนที่กำหนดแล้วปุ่ม add จะหายไป :)
สามารถเปลี่ยน 5 เป็นค่าอะไรก็ได้ (แล้วแต่จะจำกัด หรือ Pass Value จาก Rails โดยใช้ ERB Tag ได้เลย)

Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

"อีสุกอีใส" ประสบการณ์เมื่อต้องมาเป็นตอนอายุ 22