วันพฤหัสบดี, มิถุนายน 21, 2550

อ่าน Agile Web Development with Rails ( 5 )

จากตอนที่แล้ว คำสั่ง scaffold ใน controller มีอิทธิฤทธิ์ยิ่งนัก สามารถสร้างสิ่งมหัศจรรย์จากสูญญากาศ
แต่สุดยอดวิชาย่อมต้องมีจุดอ่อน อะไรที่ดีมากๆ จุดอ่อนก็คือ มันดีเกินไป

คือมันสมบูรณ์แบบเกินไปครับ สมบูรณ์แบบจนไม่รู้จะไปแก้ไขตรงไหนดี เพราะไม่มีที่ให้แก้ให้ปรับเลย

แต่ทางออกย่อมมีเสมอ เมื่อมี dynamic scaffold ก็ย่อมต้องมี static scaffold อยู่คู่กัน เป็นอีกทางเลือกหนึ่งซึ่งยุ่งยากกว่านิดหน่อย แต่ก็สามารถพลิกแพลงได้หลากหลายกว่ามากครับ

ruby script/generate scaffold product admin
product บอก model ที่ใช้ ในขณะที่
admin ระบุ controller ครับ

สิ่งสำคัญที่เราได้จากการนี้คือ rhtml หนึ่งพวงใหญ่อยู่ใน /app/views/admin/
ทีนี้อยากแก้ตรงไหนก็ตามสบายเลยครับ

เมื่อส่วนที่ rhtml พวกนี้จัดการคือ html ย่อมต้องมีส่วนของ css อยู่ที่ไหนสักที่
นั่นคือ public/stylesheets/ ครับ โดยปกติถ้าไม่ระบุ css file ที่ใช้ public/stylesheets/scaffold.css จะถูกเรียกใช้ by default ครับ

หากเราต้องการเปลี่ยนไปใช้ css file อื่น ก็ควรสร้างและเก็บไว้ที่ public/stylesheets/ นี้เช่นเดียวกันครับ

ส่วนที่ระบุเรื่อง css นี้จะเก็บแยกอยู่ใน app/views/layouts/con_name.rhtml ครับ ไฟล์นี้จะถูกสร้างตอนที่เราใช้คำสั่ง ruby script/generate scaffold model_name con_name ครับ

เปิดไฟล์ layout นี้ดูแล้วมองหาส่วนที่กำหนด css ครับ
<%= stylesheet_link_tag 'scaffold' %>
สมมติว่าเราอยากให้ใช้ depot.css ด้วยก็แก้เป็น
<%= stylesheet_link_tag 'scaffold' , 'depot' %>

แค่นี้เองครับ

ไม่มีความคิดเห็น: