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

แอพ Bootstrapping Rails พร้อมตัวสร้างและเทมเพลต

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

หากคุณเคยใช้ Rails มาระยะหนึ่งแล้ว คุณก็จะเจอกับเครื่องปั่นไฟ ต้องการสร้างแอปพลิเคชันใหม่หรือไม่? เรียกใช้ 00 . ต้องการรองรับโมเดลและมุมมองใหม่ๆ จำนวนมากใช่ไหม เรียกใช้ 14 . มีอีกมากมายที่จะช่วยให้คุณเริ่มต้นได้อย่างรวดเร็วหรือปรับปรุงขั้นตอนการทำงานของคุณ

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

มาเริ่มกันเลย!

เครื่องกำเนิด Rails คืออะไร

เพื่อไม่ให้สับสนกับฟังก์ชันตัวสร้าง (ซึ่งคุณอาจคุ้นเคยจาก Python หรือ Javascript) Railsgenerators คือคำสั่ง Thor แบบกำหนดเองที่เน้นไปที่การสร้างสิ่งต่าง ๆ

มีตัวอย่างมากมาย คุณน่าจะคุ้นเคยกับตัวสร้างโมเดล (21 ) สำหรับการสร้างแบบจำลอง ActiveRecord ใหม่หรือตัวสร้างการโยกย้าย (32 ) เพื่อสร้างการโยกย้ายใหม่ นอกจากนี้ยังมี 47 ซึ่ง — คุณเดาเอานะ — สร้างเครื่องกำเนิดใหม่!

เครื่องกำเนิดไฟฟ้าสามารถโทรหากัน — ตัวอย่างเช่น 54 จะเรียกเครื่องกำเนิดไฟฟ้าอื่นๆ มากมาย — และจัดเตรียมวิธีการสร้างหรือแก้ไขไฟล์ ติดตั้งอัญมณี รันงานคราดเฉพาะ และอื่นๆ อีกมากมาย มาสร้างตัวสร้างข้อมูลจำเพาะโมเดลอย่างง่ายเพื่อทำความเข้าใจวิธีการทำงานกัน

การสร้างตัวสร้างของคุณเองใน Ruby on Rails

เรียกใช้สิ่งต่อไปนี้:

 

สิ่งนี้จะสร้างไฟล์ใหม่หลายไฟล์ใน 64 . เราสามารถแก้ไข 73 ได้ ในโฟลเดอร์ 86 เพื่อสร้างไฟล์ข้อมูลจำเพาะโมเดลในไดเร็กทอรีที่ถูกต้อง:

 

96 คำสั่งจะค้นหาไฟล์เทมเพลตใน 100 ไดเร็กทอรีและเรนเดอร์ไปยังตำแหน่งที่ระบุ — 114 ไดเรกทอรี คำสั่งจะแทนที่ตัวแปรลักษณะ ERB ที่พบในไฟล์เทมเพลต

โดยตั้งค่า 129 เราจะแจ้งให้โปรแกรมสร้างของเราทราบว่าสามารถค้นหาไฟล์เทมเพลตที่อ้างอิงได้จากที่ใด เทมเพลต130 ในโฟลเดอร์ 149 อาจมีลักษณะดังนี้:

 

เมื่อคุณสร้างไฟล์นั้นแล้ว คุณสามารถเรียกใช้ตัวสร้างเพื่อสร้างไฟล์ข้อมูลจำเพาะใหม่ได้

 

อัญมณีจำนวนมากมาพร้อมกับเครื่องกำเนิดเช่นนี้ อันที่จริงแล้ว เราได้สร้างเวอร์ชันที่เรียบง่ายของตัวสร้าง Rspec ที่มาพร้อมกับมัน FactoryBot มีตัวสร้างสำหรับโรงงาน มีตัวอย่างอีกมากมาย

เครื่องกำเนิดอัญมณีต่างๆ มีความซับซ้อนมากกว่าเครื่องที่เราสร้างขึ้น เราสามารถทำให้ตัวสร้างของเรารับข้อโต้แย้งหรือแม้กระทั่งเชื่อมโยงมันเข้ากับตัวสร้างที่มีอยู่เช่น 152 . โปรดดูเอกสารประกอบของเครื่องกำเนิดไฟฟ้า Rails หากคุณต้องการเรียนรู้เพิ่มเติม

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

ป้อนเทมเพลต!

เทมเพลตใน Ruby on Rails

ตามชื่อที่แนะนำ เทมเพลตคือไฟล์สำหรับปรับแต่งการตั้งค่าแอปพลิเคชันของคุณ อย่าสับสนสิ่งเหล่านี้กับไฟล์เทมเพลตที่เราได้พูดคุยกันก่อนหน้านี้! โดยสรุปแล้ว ไฟล์เหล่านี้เป็นเพียงตัวสร้างที่มีจุดประสงค์เฉพาะ ตามที่เห็นได้จากเทมเพลต API แม้ว่าจะไม่เหมือนกันทุกประการกับเครื่องกำเนิดไฟฟ้า แต่ก็คล้ายกันมาก

หากคุณมีไฟล์เทมเพลตอยู่แล้ว คุณสามารถใช้ไฟล์ดังกล่าวได้ดังนี้:

 

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

 

คุณไม่จำกัดการใช้เทมเพลตเมื่อใช้งาน 162 อย่างใดอย่างหนึ่ง หากคุณได้ตั้งค่าแอปแล้ว คุณสามารถใช้เทมเพลตได้ในภายหลังโดยดำเนินการ:

 

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

การสร้างเทมเพลตของคุณเองใน Rails

ตอนนี้เรารู้เกี่ยวกับตัวสร้างและวิธีใช้เทมเพลตแล้ว มาสร้างเทมเพลตแอปพลิเคชันง่ายๆ เพื่อทำให้ขั้นตอนการตั้งค่าบางอย่างเป็นแบบอัตโนมัติ

วิธีการตั้งค่าแอป Rails ของคุณนั้นขึ้นอยู่กับความชอบส่วนตัวเป็นอย่างมาก แต่นี่คือตัวอย่าง:

  1. ติดตั้ง dotenv gem
  2. สร้าง 175 ไฟล์สำหรับสภาพแวดล้อมการพัฒนา
  3. ปรับเปลี่ยนไฟล์การกำหนดค่าฐานข้อมูลเพื่อใช้ตัวแปรสภาพแวดล้อม
  4. เลือกติดตั้งและตั้งค่า Rspec

มาสร้างไฟล์ในเครื่องกัน — 189 — และเพิ่ม 199 โดยใช้ 201 คำสั่ง

 

เนื่องจากเราเพิ่งเพิ่ม dotenv gem มาสร้าง 213 กันด้วย ไฟล์เพื่อเก็บการกำหนดค่าฐานข้อมูลของเรา

คุณสามารถสร้างไฟล์ใหม่ที่มีเนื้อหาเฉพาะได้โดยใช้ 222 . คุณจะไม่พบสิ่งนี้ในเทมเพลตหรือเอกสารตัวสร้าง เนื่องจาก Thor เป็นผู้จัดเตรียมวิธีการนี้ คุณอาจเจอนามแฝง 238 . เทมเพลตแอปพลิเคชันได้รับการประเมินในบริบทของ 241 และนั่นคือสิ่งที่ 254 นามแฝงถูกกำหนดไว้แล้ว

 

268 ตัวแปรมีอาร์กิวเมนต์แรกของ 272 . การใช้ตัวแปรนี้ทำให้เรามั่นใจได้ว่าไฟล์กำหนดค่าของเราตรงกับแอปพลิเคชันที่สร้างขึ้น

ต่อไป ลองใช้ตัวแปรสภาพแวดล้อมของเราเพื่อเชื่อมต่อกับฐานข้อมูล เราสามารถเขียนทับ 281 ทั้งหมดได้ โดยใช้ 299 คำสั่ง แต่เรามาแก้ไขแทนโดยใช้ 305 .

 

เราสามารถใช้ทั้งสตริงหรือ regex กับ 317 อาร์กิวเมนต์เพื่อระบุตำแหน่งที่จะแทรกเนื้อหา

แน่นอนว่า การใช้การกำหนดค่าประเภทนี้จะเหมาะสมก็ต่อเมื่อผู้ใช้ไม่ได้สร้างแอปพลิเคชันด้วย SQLite คุณสามารถตรวจสอบการมีอยู่ของอาร์กิวเมนต์บางอย่างได้โดยใช้ 327 ตัวแปร วิธีที่ดีที่สุดคืออ่านซอร์สโค้ดของเครื่องสร้างแอปของ Rails เพื่อดูว่ามีตัวเลือกใดบ้าง

 

สุดท้ายแต่ไม่ท้ายสุด เราอนุญาตให้ผู้ใช้ติดตั้ง Rspec ได้หากต้องการ มีหลายวิธีในการรับข้อมูลจากผู้ใช้และสร้างเทมเพลตแบบโต้ตอบ 337 วิธีการขอให้ผู้ใช้ยืนยัน:

 

เรารู้จัก 348 แล้ว วิธีการ แต่ 355 และ 363 ใหม่

ตามที่กล่าวไว้ก่อนหน้านี้ Rspec เพิ่มตัวสร้างของตัวเอง และคุณสามารถเรียกตัวสร้างเหล่านี้ (หรือตัวอื่น ๆ สำหรับเรื่องนั้น) ได้โดยตรงจากเทมเพลตของคุณ แต่มีสิ่งที่จับได้ — อัญมณีที่ระบุด้วย 375 วิธีการติดตั้งอยู่ที่ส่วนท้ายของเทมเพลตเท่านั้น กำลังโทร 380 ด้วยตัวสร้างที่มาจาก gem นั้นจะล้มเหลว - ซึ่งเป็นสาเหตุที่คุณควรลงทะเบียนคำสั่งเป็นการเรียกกลับด้วย 393 .

หมายเหตุ :ก่อนที่เราจะสรุป เราขอสรุปสั้นๆ เกี่ยวกับการสร้างหรือแก้ไขไฟล์ เราใช้ 403 และ 416 แต่มีตัวเลือกอื่นๆ อีกมากมาย คุณอาจเจอ 427 หรือ 437 เมื่ออ่านเทมเพลตต่างๆ ฉันไม่ได้พูดถึงพวกเขาที่นี่เพื่อให้สิ่งต่าง ๆ เรียบง่าย หากคุณต้องการสร้างเทมเพลตขั้นสูง คุณควรรู้ว่ามีวิธีอื่นในการจัดการกับไฟล์เหล่านี้

ผลลัพธ์:เทมเพลตสุดท้ายใน Rails

เทมเพลตสุดท้ายควรมีลักษณะดังนี้:

 

คุณสามารถทดสอบเทมเพลตนี้ได้โดยการเรียกใช้:

 

หรือ:

 

เพื่อใช้ประโยชน์จากการกำหนดค่าฐานข้อมูลแบบกำหนดเอง

ตามที่กล่าวไว้ ไฟล์นี้เหมาะอย่างยิ่งที่จะแชร์เป็นส่วนสำคัญของ GitHub ปรับให้เหมาะกับความต้องการของคุณ อัปโหลด จากนั้นแชร์กับเพื่อนร่วมงาน เพื่อน และใครก็ตามที่สนใจเทมเพลตแอปที่คุณกำหนดเอง 😉

เรียนรู้เพิ่มเติมเกี่ยวกับตัวสร้างและเทมเพลต Rails

ไม่จำเป็นต้องพูดว่า เราเพิ่งเริ่มต้นพื้นผิวที่นี่

ทุกคนมีความชอบที่แตกต่างกันในการเขียนและพัฒนาแอป Rails ดังนั้นจึงมีผู้สร้างและเทมเพลตแอปพลิเคชันมากมาย คุณสามารถเรียนรู้ได้มากมายเกี่ยวกับการปรับแต่งเฉพาะโดยการอ่านเกี่ยวกับสิ่งเหล่านี้ ฉันขอแนะนำ Jumpstart และ RailsBytes ของ ChrisOliver ซึ่งเป็นคอลเลกชันเทมเพลตที่รวบรวมโดยชุมชน

นอกจากนี้ยังมี Thoughtbot's Suspenders ซึ่งเป็นแรงบันดาลใจให้ฉันเจาะลึกลงไปในตัวสร้างและเทมเพลตของ Rails ฉันยังเขียนเทมเพลตแอปพลิเคชันของตัวเอง — Schienenzeppelin —ซึ่งแม้จะไม่ทันสมัย แต่ก็อาจสร้างแรงบันดาลใจได้บ้าง

สรุป:เริ่มต้นใช้งาน Ruby on Rails Generators และเทมเพลต

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

จากนั้นเราเจาะลึกเทมเพลตและเรียนรู้วิธีสร้างเทมเพลตง่ายๆ เพื่อปรับแต่งการตั้งค่าแอปพลิเคชันของคุณ นี่อาจเป็นงานเล็กน้อย แต่ก็คุ้มค่าเช่นกัน หากการเขียนเทมเพลตของคุณเองไม่เหมาะกับคุณ ก็ยังมีเทมเพลตออนไลน์ให้เลือกมากมาย!

ขอให้มีความสุขกับการสร้างเทมเพลต!

ปล. หากคุณต้องการอ่านโพสต์ Ruby Magic ทันทีที่เผยแพร่ สมัครรับจดหมายข่าว Ruby Magic ของเราและไม่พลาดแม้แต่โพสต์เดียว! แอพ Bootstrapping Rails พร้อมตัวสร้างและเทมเพลต

ฮันส์-ยอร์ก ชเนดลิทซ์

Hans ผู้เขียนรับเชิญของเราเป็นวิศวกรของ Rails จากเวียนนา ประเทศออสเตรีย เขาใช้เวลาส่วนใหญ่ในการเขียนโค้ดหรืออ่านหนังสือเกี่ยวกับการเขียนโค้ด และบางครั้งก็เขียนเกี่ยวกับเรื่องนี้ในบล็อกของเขาด้วยซ้ำ! เมื่อเขาไม่ได้นั่งอยู่หน้าจอ คุณอาจพบเขากำลังปีนเขาอยู่ข้างนอก

บทความทั้งหมดโดย Hans-Jörg Schnedlitz