Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

Rails Scaffolding ทำความเข้าใจ: สร้างอินเทอร์เฟซ CRUD ทันที

คุณอาจกำลังเรียน Rails และอ่านว่าคุณต้องสร้าง "scaffold" เพื่อเริ่มแอปพลิเคชัน Rails ของคุณ...

ง่าย!

คุณสามารถทำได้โดยใช้คำสั่ง rails g scaffold

แต Scaffolding คืออะไร?

"Scaffolding is a temporary structure used to support a work crew to aid in the construction, maintenance and repair of buildings, bridges and all other man-made structures." — Wikipedia

แปลเป็นภาษา Rails:

Scaffold คือชุดไฟล์ที่สร้างขึ้นอัตโนมัติ ซึ่งสร้างโครงสร้างพื้นฐานของโปรเจกต์ Rails

ไฟล์เหล่านี้รวมถึง:

  • คอนโทรลเลอร์ (A controller)
  • โมเดล (A model)
  • วิวสำหรับทุกการกระทำคอนโทรลเลอร์มาตรฐาน (index, edit, show, new)

เส้นทาง (route) ใหม่

และไมเกรชัน (migration) เพื่อเตรียมฐานข้อมูลของคุณ

มาดูตัวอย่าง!

วิธีใช้คำสั่ง Rails Scaffold

ตัวอย่างการ scaffolding โปรเจกต์สำหรับเว็บไซต์เกี่ยวกับหนังสือจะมีลักษณะแบบนี้

rails g scaffold books

คุณควรเห็นข้อความเลื่อนมามาก ซึ่งรายละเอียดไฟล์ที่ถูกสร้าง

ตัวอย่างนี้สร้าง:

  • BooksController
  • Book model
  • resources :books route ใหม่ เพิ่มในไฟล์ config/routes.rb ของคุณ
  • ชุดไฟล์เกี่ยวกับการทดสอบ
  • ไฟล์วิวภายใต้ app/views/books (ห้าอันรวม)

ใช่

นั่นคือสิ่งมากมาย

หากคุณต้องการยกเลิก scaffolding นี้ ทันทีหลังสร้าง คุณสามารถใช้คำสั่งต่อไปนี้

rails d scaffold books

ที่ "d" หมายถึง "destroy"

จำไว้ว่า สิ่งนี้จะลบไฟล์ ที่ถูกสร้างโดยกระบวนการ scaffolding

ตอนนี้:

ก่อนที่คุณจะใช้โค้ดที่ scaffold แล้ว คุณต้องรัน migration ของคุณเพื่ออัปเดตสคีม่าฐานข้อมูล

ใช้คำสั่ง rails db:migrate

หากไม่มีข้อความข้อผิดพลาดแสดงขึ้น คุณพร้อมแล้ว! คุณมีโครงสร้างพื้นฐานสำหรับแอปพลิเคชัน Rails ใหม่ของคุณ หรือฟีเจอร์ใหม่ที่ต้องการโมเดล วิว และคอนโทรลเลอร์ที่สอดคล้อง

ต่อไป:

รัน rails server

เปิดเบราว์เซอร์ไปที่ localhost:3000/books และคุณควรจะเห็นผลลัพธ์!

Rails Scaffolding พร้อมฟิลด์เพิ่มเติม

โดยค่าเริ่มต้น...

โมเดลของคุณจะได้แค่ฟิลด์ timestamp ซึ่งหมายความว่าข้อมูลที่คุณสามารถบันทึกเกี่ยวกับหนังสือของคุณ (หรือโมเดลที่คุณทำงานอยู่) คือเวลาที่พวกมันถูกสร้าง หรืออัปเดตเท่านั้น

วิธี scaffold พร้อมฟิลด์เพิ่มเติม:

rails g scaffold books title:string author:string publication_year:integer

หากคุณสร้าง scaffolding แบบนี้ คุณจะมี 3 ฟิลด์ให้ทำงาน

ชื่อเรื่อง (title) ผู้เขียน (author) และปีพิมพ์ (publication year)

นั่นน่าสนใจกว่าการมีแค่ timestamp ของฐานข้อมูล

Btw.

นี่คือไวยากรณ์เดียวกันที่เราใช้สำหรับสร้าง migration ด้วย rails g migration

การสร้างคอมโพเนนต์เฉพาะเจาะจง

Scaffolding สร้างสิ่งที่คุณอาจไม่ต้องการหรือไม่ต้องการตอนนี้

แต Rails ดี

คุณสามารถสร้างคอมโพเนนต์แต่ละตัวได้ เช่น คอนโทรลเลอร์ โดยใช้คำสั่ง rails g (g สำหรับ generate)

ตัวอย่าง:

  • rails g controller Fruit
  • rails g model Fruit name:string color:string (สร้างโมเดล + migration)
  • rails g migration CreateBook title:string year:integer (สร้าง migration อย่างเดียว)

หนึ่งในประโยชน์ใหญ่ของการใช้คำสั่ง scaffolding คือ ไฟล์ทั้งหมดถูกสร้างโดยใช้ naming conventions ที่ถูกต้อง ซึ่งหลีกเลี่ยงข้อความข้อผิดพลาดแปลกๆ มันยังประหยัดงานที่ต้องสร้างไฟล์เหล่านี้ด้วยตนเอง

Btw...

ถือเป็นแนวทางปฏิบัติที่ดีที่จะลบไฟล์ที่สร้างอัตโนมัติที่คุณไม่วางแผนจะใช้ ดังนั้นหลังใช้ generator เช่น "g controller" ให้ตรวจสอบรายการไฟล์ที่สร้างและลบสิ่งที่คุณไม่ต้องการ

สรุป

คุณได้เรียนรู้เกี่ยวกับ scaffolding ใน Ruby แล้ว เพื่อให้คุณเริ่มแอปพลิเคชัน Rails ใหม่ได้อย่างรวดเร็วเพื่อฝึกฝน

เมื่อคุณเรียนรู้มากขึ้น คุณอาจอยากปล่อย scaffolding ไป

แตคุณยังคงสามารถสร้างคอนโทรลเลอร์ โมเดล หรือไฟล์วิวแต่ละตัวเมื่อคุณต้องการ

ขอบคุณที่อ่าน! 🙂