Ruby on Rails - โครงสร้างไดเรกทอรี
เมื่อคุณใช้สคริปต์ตัวช่วย Rails เพื่อสร้างแอ็พพลิเคชันของคุณสคริปต์จะสร้างโครงสร้างไดเร็กทอรีทั้งหมดสำหรับแอ็พพลิเคชัน Rails รู้ตำแหน่งที่จะค้นหาสิ่งที่ต้องการภายในโครงสร้างนี้ดังนั้นคุณจึงไม่จำเป็นต้องป้อนข้อมูลใด ๆ
นี่คือมุมมองระดับบนสุดของแผนผังไดเร็กทอรีที่สร้างโดยสคริปต์ผู้ช่วยเหลือในขณะที่สร้างแอปพลิเคชัน ยกเว้นการเปลี่ยนแปลงเล็กน้อยระหว่างรีลีสทุกโปรเจ็กต์ Rails จะมีโครงสร้างที่เหมือนกันโดยมีหลักการตั้งชื่อเหมือนกัน ความสม่ำเสมอนี้ทำให้คุณได้เปรียบอย่างมาก คุณสามารถย้ายไปมาระหว่างโครงการ Rails ได้อย่างรวดเร็วโดยไม่ต้องสนใจองค์กรของโครงการ
เพื่อทำความเข้าใจโครงสร้างไดเร็กทอรีนี้ให้ใช้ไฟล์ demoแอปพลิเคชันที่สร้างขึ้นในบทการติดตั้ง สามารถสร้างได้โดยใช้คำสั่งตัวช่วยง่ายๆrails demo.
ตอนนี้ไปที่ไดเร็กทอรีรูทของแอปพลิเคชันสาธิตดังนี้ -
tp> cd demo
demo> dir
คุณจะพบโครงสร้างไดเร็กทอรีใน Windows ดังนี้ -
ตอนนี้ขออธิบายวัตถุประสงค์ของแต่ละไดเรกทอรี
app- จัดระเบียบส่วนประกอบแอปพลิเคชันของคุณ มีไดเร็กทอรีย่อยที่เก็บมุมมอง (มุมมองและตัวช่วย) ตัวควบคุม (คอนโทรลเลอร์) และตรรกะทางธุรกิจส่วนหลัง (แบบจำลอง)
app/controllers- ไดเร็กทอรีย่อยของคอนโทรลเลอร์คือที่ที่ Rails ค้นหาคลาสคอนโทรลเลอร์ คอนโทรลเลอร์จะจัดการกับคำขอทางเว็บจากผู้ใช้
app/helpers- ไดเร็กทอรีย่อย helpers มีคลาสตัวช่วยใด ๆ ที่ใช้เพื่อช่วยคลาสโมเดลมุมมองและคอนโทรลเลอร์ ซึ่งจะช่วยให้โมเดลมุมมองและโค้ดคอนโทรลเลอร์มีขนาดเล็กเน้นและไม่กระจัดกระจาย
app/models- ไดเร็กทอรีย่อยของโมเดลมีคลาสที่สร้างโมเดลและรวมข้อมูลที่เก็บไว้ในฐานข้อมูลของแอปพลิเคชันของเรา ในเฟรมเวิร์กส่วนใหญ่ส่วนนี้ของแอปพลิเคชันอาจยุ่งเหยิงน่าเบื่อฟุ่มเฟื่อยและเกิดข้อผิดพลาดได้ง่าย Rails ทำให้ตายง่ายๆ!
app/view - ไดเร็กทอรีย่อยมุมมองเก็บเทมเพลตการแสดงผลเพื่อกรอกข้อมูลจากแอปพลิเคชันของเราแปลงเป็น HTML และกลับไปที่เบราว์เซอร์ของผู้ใช้
app/view/layouts- เก็บไฟล์เทมเพลตสำหรับเลย์เอาต์ที่จะใช้กับมุมมอง นี่เป็นการจำลองวิธีการตัดมุมมองส่วนหัว / ส่วนท้ายทั่วไป ในมุมมองของคุณกำหนดเค้าโครงโดยใช้ <tt> layout: default </tt> และสร้างไฟล์ชื่อ default.html.erb ภายใน default.html.erb ให้เรียก <% yield%> เพื่อแสดงผลมุมมองโดยใช้เค้าโครงนี้
components - ไดเร็กทอรีนี้มีส่วนประกอบแอพพลิเคชั่นเล็ก ๆ ในตัวที่รวมโมเดลมุมมองและคอนโทรลเลอร์
config- ไดเร็กทอรีนี้มีโค้ดคอนฟิกูเรชันจำนวนเล็กน้อยที่แอปพลิเคชันของคุณต้องการรวมถึงคอนฟิกูเรชันฐานข้อมูลของคุณ (ใน database.yml) โครงสร้างสภาวะแวดล้อม Rails ของคุณ (environment.rb) และการกำหนดเส้นทางของคำขอเว็บที่เข้ามา (route.rb) คุณยังสามารถปรับแต่งลักษณะการทำงานของสภาพแวดล้อม Rails ทั้งสามสำหรับการทดสอบการพัฒนาและการปรับใช้กับไฟล์ที่พบในไดเร็กทอรีสภาวะแวดล้อม
db- โดยปกติแอปพลิเคชัน Rails ของคุณจะมีโมเดลออบเจ็กต์ที่เข้าถึงตารางฐานข้อมูลเชิงสัมพันธ์ คุณสามารถจัดการฐานข้อมูลเชิงสัมพันธ์ด้วยสคริปต์ที่คุณสร้างและวางในไดเร็กทอรีนี้
doc- Ruby มีเฟรมเวิร์กที่เรียกว่า RubyDoc ซึ่งสามารถสร้างเอกสารสำหรับโค้ดที่คุณสร้างขึ้นโดยอัตโนมัติ คุณสามารถช่วย RubyDoc ด้วยความคิดเห็นในโค้ดของคุณ ไดเร็กทอรีนี้เก็บ Rails และเอกสารแอปพลิเคชันที่สร้างโดย RubyDoc ทั้งหมด
lib - คุณจะใส่ไลบรารีไว้ที่นี่เว้นแต่จะเป็นของที่อื่นอย่างชัดเจน (เช่นไลบรารีของผู้ขาย)
log- บันทึกข้อผิดพลาดไปที่นี่ Rails สร้างสคริปต์ที่ช่วยคุณจัดการบันทึกข้อผิดพลาดต่างๆ คุณจะพบบันทึกแยกต่างหากสำหรับเซิร์ฟเวอร์ (server.log) และแต่ละสภาพแวดล้อม Rails (development.log, test.log และ production.log)
public - เช่นเดียวกับไดเรกทอรีสาธารณะสำหรับเว็บเซิร์ฟเวอร์ไดเรกทอรีนี้มีไฟล์เว็บที่ไม่เปลี่ยนแปลงเช่นไฟล์ JavaScript (สาธารณะ / javascripts) กราฟิก (สาธารณะ / รูปภาพ) สไตล์ชีท (สาธารณะ / สไตล์ชีท) และไฟล์ HTML (สาธารณะ ).
script- ไดเร็กทอรีนี้มีสคริปต์เพื่อเปิดและจัดการเครื่องมือต่างๆที่คุณจะใช้กับ Rails ตัวอย่างเช่นมีสคริปต์ในการสร้างโค้ด (สร้าง) และเปิดเว็บเซิร์ฟเวอร์ (เซิร์ฟเวอร์)
test- แบบทดสอบที่คุณเขียนและแบบทดสอบที่ Rails สร้างให้คุณทั้งหมดอยู่ที่นี่ คุณจะเห็นไดเร็กทอรีย่อยสำหรับ mocks (mocks), unit testing (unit), fixtures (fixtures) และ functional testing (functional)
tmp - Rails ใช้ไดเร็กทอรีนี้เพื่อเก็บไฟล์ชั่วคราวสำหรับการประมวลผลระดับกลาง
vendor - ไลบรารีที่จัดหาโดยผู้จำหน่ายบุคคลที่สาม (เช่นไลบรารีความปลอดภัยหรือยูทิลิตี้ฐานข้อมูลนอกเหนือจากการแจกจ่าย Rails พื้นฐาน) ไปที่นี่
นอกเหนือจากไดเร็กทอรีเหล่านี้แล้วยังมีไฟล์อีกสองไฟล์ในไดเร็กทอรีสาธิต
README - ไฟล์นี้มีรายละเอียดพื้นฐานเกี่ยวกับ Rail Application และคำอธิบายโครงสร้างไดเร็กทอรีที่อธิบายข้างต้น
Rakefile- ไฟล์นี้คล้ายกับ Unix Makefile ซึ่งช่วยในการสร้างบรรจุภัณฑ์และทดสอบโค้ด Rails สิ่งนี้จะถูกใช้โดยยูทิลิตี้คราดที่ให้มาพร้อมกับการติดตั้ง Ruby