Posted
September 15, 2008
at
Grails66
ต่อจากจาก entry นี้ครับ มาดูการจัดการ GORM Relationship แบบ 1 ต่อ 1 มาดูต่อไปว่าจะจัดการความสัมพันธ์แบบ one-to-many ได้อย่างไร โดยผมจะใช้ตัวอย่างจาก สนุกกับ Active Record ภาค Grails : ค้น, ค้น, ค้น มาเริ่มกันเลยครับ … go go go !!!! กำหนดให้ Domain class 2 ตัวคือ - Writer เก็บข้อมูลของนักเขียน - Book เก้บข้อมูลของหนังสือ Business Rule - หนังสือ 1 เล่มสามารถมีผู้แต่งได้เพียง 1 คน - นักเขียนสามารถเขียนหนังสือได้มากว่า 1 เล่ม ถ้ายังไม่ทำการสร้าง domain class ให้สร้างดังนี้ $grails create-domain-class Writer $grails create-domain-class Book และทำการแก้ไขดังนี้ /domains/Writer.groovy class Writer [...]
Posted
September 16, 2008
at
Grails66
วันนี้ผมลองนั่งดูการจัดการเกี่ยวกับเวลาใน Groovy ซึ่งพบว่าสามารถใช้ความสามารถ operator overloading ได้ง่าย เช่น ผมต้องการเพิ่มวันจากเวลาปัจจุบันไป 2 วัน ก็ทำได้ง่ายๆ ดังนี้ def current_date = new java.util.Date( System.currentTimeMillis() ) current_date += 2 ผลลัพธ์ที่ได้ Result: Thu Sep 18 18:25:48 GMT+07:00 2008 นั่งๆ เขียนไปไม่รู้อะไรมาดลใจ ให้ไปนึกถึง slide ที่คุณ @cblue ในงาน NJUG 5 เรื่องของการใช้งาน category มาช่วย ซึ่งจะทำให้ code นั้นอ่านง่ายและ เข้าใจได้ง่าย เช่นต้องการรู้คำนวณวินาทีจาก 3 hours + 20 minutes = 3*60*60 + 20*60 [...]
Posted
September 28, 2008
at
Grails66
หลังจากที่ผ่านมาได้พูดถึงการจัดการ GORM Relationship แบบ One-to-Many กันแล้วมา entry นี้จะมาพูดถึงการจัดการความสัมพันธ์แบบ many-to-many กันบ้าง เริ่มกันเลย …….. ในการจัดการความสัมพันธ์แบบนี้ โดยทั่วไปนั้นจะสร้าง table กลางขึ้นมาเพื่อเชื่อมความสัมพันธ์กันดังรูป ซึ่งจะมองได้ว่าเป็นมีความสัมพันธ์ขึ้นดังนี้ BookWriter –> Book BookWriter –> Writer เมื่อมาจัดการความสัมพันธ์ลักษณะนี้ใน GORM สามารถทำได้ง่าย โดยจุดสำคัญอยู่ที่ domain class : BookWriter จะเป็นตัวเชื่อมความสัมพันธ์ของ Book และ Writer ดังนี้ Book.groovy class Book { String name } Writer.groovy class Writer { String name } BookWriter.groovy import Writer class BookWriter { static belongsTo = [ book:Book, writer:Writer ] } คำอธิบาย static belongsTo = [ book:Book, writer:Writer ] [...]
Posted
October 01, 2008
at
Ajax66
มาลองเริ่มศึกษา AJAX กัน ผมเคยเขียนไว้ที่ Narisa.com เลยเอามาแบ่งปันครับผม มาเริ่มกันเลยดีกว่า ( ตามความเข้าใจของผมนะครับ ) ผมเห็นเขาบอกว่า AJAX คือ New Approch to Web Application ??? แล้ว AJAX มันคืออะไร ?? AJAX ไม่ใช่เทคโนโลยีหรือของใหม่อะไร แต่ว่าเป็นเพียงการนำเทคโนโลยีเดิมๆ หลายๆ ตัวมารวมกัน แล้วมันดันทำให้ประสิทธิภาพในการทำงานที่ดีขึ้นซะงั้น AJAX จะประกอบไปด้วยอะไรบ้าง ?? 1. ส่วนแสดงผลจะใช้ XHTML และ CSS ( Cascading Style Sheets ) 2. ส่วนที่ต้องการแสดงผลแบบ Dynamic และการติดต่อกับผู้ใช้งานใช้ DOM ( Document Object Model ) 3. การแลกเปลี่ยนข้อมูลและการจัดการข้อมูลจะใช้ XML ( Extensible Markup Language ) และ XSLT ( EXtensible [...]
Posted
October 03, 2008
at
Grails66
ใน rails มี entry เกี่ยวกับ looping Loop 9 แบบบน ruby แล้ว grails66 จะยอมน้อยหน้าได้อย่างไร ดังนั้นมาดูกันว่า Looping ใน Groovy สามารถเขียนอย่างไรได้บ้าง ลอกจากเอกสารของ Groovy มาตรงๆ และแก้กันหน้าด้านๆ เลยครับ ขอเน้น coding นะครับ ไม่เน้นอธิบาย เพราะว่า code อธิบายตัวเองอยู๋แล้ว ^_^ 1. While loop while( ) { } เช่น def x = 0 while( x++ < 5 ) { println x } 2. For loop Syntax ที่เป็นพื้นฐานสุดๆ คือ for( ค่าเริ่มต้น; เงื่อนไขการทำงาน; [...]
Posted
November 07, 2008
at
Grails66
ได้รับ dm มาจากคุณ @NAzT เกี่ยวกับการแนะนำ เนื้อหาและบทความใน Grails66.com ดังนี้ - อยากเสนอให้เขียนบทความของ grails66 ระดับ basic ครับผม อย่างเช่น การส่งค่า และเรียกใช้ค่าไปมาระหว่าง controller และ view เป็นต้นครับ - เพราะเท่าทีสังเกต มือใหม่จะไม่ค่อยเข้าใจน่ะครับ ว่าจะเรียกใช้ หรือส่งค่าไปมาอย่างไร ทำให้คิดต่อไม่ได้ครับ - ส่วนเพื่อนๆที่ไม่เคยใช้ mvc มาก่อน จะไม่รุ้ว่าจะเอาค่าจาก form ไปใช้ต่อยังไงน่ะครับผม ผมกลับมาดูบทความต่างๆ ก็เป็นจริงตามนั้น ดังนั้นผมจึงขอเริ่มด้วยบทความง่ายๆ หรือเบื้องต้นสำหรับมือใหม่ ผมก็มือใหม่เช่นกันครับ ผมจะใช้ tag บทความว่า newbie เพื่อให้ง่ายต้อการค้นหาครับ โดยผมจะเริ่มตั้งแต่ Login Application ก่อนแล้วกันนะครับ เป้าหมายเพื่อ - เข้าใจ MVC Model - เข้าใจการสร้าง Grails Framework ด้วยแนวคิด MVC Flow ของระบบ - [...]
Posted
November 11, 2008
at
Grails66
จะซื้อก็ซื้อกันไปครับ เรามาศึกษากันต่อครับ ที่เหลือก็คงได้แต่ติดตามข่าวสารครับ ว่าจะมีทิศทางอย่างไรครับ ———————————————————————————– หลังจากที่เราเริ่มต้นเรียนรู้ Grails จาก การสร้าง Login Application ง่ายๆ กันมาแล้ว น่าจะทำให้เข้าใจการทำการและการพัฒนา Web Application ด้วย Grails มากขึ้น ดังนั้นใน entry นี้ผมทำการต่อยอดครับ ซึ่งได้รับคำแนะนำมาจาก comment ของคุณ @deans4j แล้วกรณีที่ทำให้ หน้า page ใดๆ secure ต้อง login ก่อน Grails มีหลักการ intercept ยังไงบ้างครับ ดังนั้นมาดูกันว่าใน Grails มีอะไรมาให้ใช้ และเราจะใช้อย่างไร ถึงจะตรวจสอบได้ว่ามีการ Authentication [ Login ] มาหรือยัง ??? หลังจากไปดูมาแล้ว Grails มีของมาให้ใช้ครับคือ Grails Filter ดังนั้นมาทำความเข้าใจกันก่อนครับ ว่ามันคืออะไร [...]
Posted
November 11, 2008
at
Grails66
จะซื้อก็ซื้อกันไปครับ เรามาศึกษากันต่อครับ ที่เหลือก็คงได้แต่ติดตามข่าวสารครับ ว่าจะมีทิศทางอย่างไรครับ ———————————————————————————– หลังจากที่เราเริ่มต้นเรียนรู้ Grails จาก การสร้าง Login Application ง่ายๆ กันมาแล้ว น่าจะทำให้เข้าใจการทำการและการพัฒนา Web Application ด้วย Grails มากขึ้น ดังนั้นใน entry นี้ผมทำการต่อยอดครับ ซึ่งได้รับคำแนะนำมาจาก comment ของคุณ @deans4j แล้วกรณีที่ทำให้ หน้า page ใดๆ secure ต้อง login ก่อน Grails มีหลักการ intercept ยังไงบ้างครับ ดังนั้นมาดูกันว่าใน Grails มีอะไรมาให้ใช้ และเราจะใช้อย่างไร ถึงจะตรวจสอบได้ว่ามีการ Authentication [ Login ] มาหรือยัง ??? หลังจากไปดูมาแล้ว Grails มีของมาให้ใช้ครับคือ Grails Filter ดังนั้นมาทำความเข้าใจกันก่อนครับ ว่ามันคืออะไร [...]
Posted
November 25, 2008
at
Grails66
การ Validation หรือตรวจสอบข้อมูลใน Grails Application นั้นสามารถทำได้ง่าย โดย Grails อนุญาติให้ทำการกำหนดค่า Constraints ต่างๆ ใน Domain Class ได้ ซึ่งการ validate จะเกิดขึ้นเมื่อทำการเรียกใช้ method validate() และ method save() ของ Domain Classes มาดูตัวอย่างกันดีกว่า เพื่อให้เห้นภาพง่ายยิ่งขึ้น จาก Domain ในตัวอย่างการ Authentication เป็นดังนี้ class User { String username String password } ต้องการ validate ข้อมูลดังนี้ 1. username ไม่เป็นค่าว่าง และจะต้องไม่ซ้ำหรือ unique 2. password ไม่เป็นค่าว่าง ดังนั้นสามารถเพิ่ม Constraints ใน Domain class User ได้ดังนี้ class User { String username String [...]
Posted
December 07, 2008
at
Grails66
มาสร้าง Grails Custom Validation กันเถอะ ที่มา :: http://grails.org/doc/1.1.x/ref/Constraints/validator.html หลังจากที่ได้เรียนรู้การใช้ build-in constraints สำหรับการ validate properties ต่างๆ ใน domain classes ที่ การใช้งาน validation เบื้องต้น แต่บ่อยครั้งที่สิ่งที่เตรียมไว้ให้นั้นอาจจะไม่เพียงพอต่อความต้องการ ดังนั้น ผู้สร้าง Grails จึงอนุญาติให้ผู้พัฒนาสามารถสร้าง Custom Validation ขึ้นมาใช้เองได้ การใช้งานจะผ่าน constraint ชื่อ validator ซึ่งจะสนับสนุน closure หรือ block constraint validator สามารถมีหรือไม่มี parameter ก็ได้ดังนี้ 1. ไม่มี parameter คือ value ของ property ที่ส่งเข้ามา 2. มี 1 parameter คือ value [...]