บทช่วยสอน Ruby on Rails

รูบี้คืออะไร?

ทับทิม เป็นภาษาโปรแกรมเชิงวัตถุระดับสูงที่ตีความได้ เป็นภาษาโอเพ่นซอร์สแบบไดนามิกที่มีชุมชนผู้ใช้จำนวนมากสนับสนุน Ruby ได้รับการออกแบบมาให้เรียบง่ายและมีประสิทธิภาพ โดยสนับสนุนการเขียนโค้ดซอฟต์แวร์ที่เน้นมนุษย์ก่อนและเน้นคอมพิวเตอร์เป็นลำดับแรก Ruby ถูกสร้างขึ้นโดย Yukihiro Matsumoto ในประเทศญี่ปุ่นเมื่อปี 1995

Rail คืออะไร?

ทางรถไฟ เป็นกรอบงานการพัฒนาที่เขียนด้วย Ruby สำหรับการสร้างแอปพลิเคชันบนเว็บ สร้างขึ้นเพื่อเป็นรากฐานของแอปพลิเคชัน Basecamp จากนั้นจึงเปิดตัวเป็นซอฟต์แวร์โอเพ่นซอร์สในปี 2004 Rails นำเสนอคุณลักษณะและฟังก์ชันมาตรฐานในตัวมากมาย ซึ่งทำให้เป็นตัวเลือกที่เหมาะสมสำหรับการสร้างต้นแบบและการพัฒนา MVP

สร้างสรรค์โดย David Heinemeier Hasson หรือที่รู้จักในชื่อ DHH เป็นหนึ่งในเครื่องมือที่ทรงอิทธิพลและได้รับความนิยมมากที่สุดในการสร้างเว็บแอปพลิเคชัน ถูกใช้โดยไซต์โปรดบางแห่งเช่น Airbnb Github, Shopify ฯลฯ

ทำไมต้องเรลส์?

นี่คือข้อดี/ประโยชน์ของการใช้ Rails:

  • Rails ได้รับการบรรจุเป็น Ruby gem และคุณสามารถใช้มันเพื่อสร้างแอปพลิเคชันที่หลากหลายได้
  • ช่วยให้คุณสร้างเว็บแอปพลิเคชันทั่วไป แอปพลิเคชันอีคอมเมิร์ซ ระบบจัดการเนื้อหา และอื่นๆ อีกมากมาย
  • Rails เป็นเฟรมเวิร์กแบบฟูลสแตกที่รวมทุกสิ่งที่คุณต้องการเพื่อสร้างเว็บแอปพลิเคชันที่ขับเคลื่อนด้วยฐานข้อมูล โดยใช้รูปแบบ Model-View-Controller
  • ซึ่งหมายความว่าเลเยอร์ทั้งหมดถูกสร้างขึ้นเพื่อให้ทำงานร่วมกันได้อย่างราบรื่นโดยใช้โค้ดน้อยลง ต้องใช้โค้ดน้อยกว่าบรรทัดอื่น ๆ

วิธีดาวน์โหลดและติดตั้ง Ruby บน Windows

กระบวนการติดตั้งจะขึ้นอยู่กับระบบปฏิบัติการของคุณ คุณจะต้องติดตั้ง Ruby บน Windows, Mac และ ลินุกซ์.

ขั้นตอน 1) ดาวน์โหลด Rubyinstaller.dll
วิธีที่ง่ายที่สุดในการติดตั้ง Ruby บนของคุณ Windows คอมพิวเตอร์จะติดตั้งผ่าน Ruby Installer ซึ่งคุณสามารถดาวน์โหลดได้ที่ https://rubyinstaller.org/.

สิ่งที่คุณต้องทำคือเรียกใช้โปรแกรมติดตั้งที่ดาวน์โหลดมา

ขั้นตอน 2) คลิกที่ตัวติดตั้งที่ดาวน์โหลดมา
Double- คลิกที่ตัวติดตั้งที่ดาวน์โหลดมา 'rubyinstaller-2.4.1-2-x64.exe'

ขั้นตอน 3) ยอมรับใบอนุญาต
เลือกปุ่มตัวเลือก 'ฉันยอมรับใบอนุญาต' และคลิกปุ่ม 'ถัดไป' สิ่งนี้จะนำคุณไปสู่รูปถัดไปด้านล่าง:

ดาวน์โหลดและติดตั้ง Ruby บน Windows

ขั้นตอน 4) ทำเครื่องหมายถูกสองช่องแรก
ทำเครื่องหมายในช่องกาเครื่องหมายสองช่องแรกเพื่อให้การรันสคริปต์ Ruby ง่ายขึ้น

คลิกปุ่ม 'ติดตั้ง' เพื่อเริ่มการติดตั้ง คุณควรเห็นภาพด้านล่างเมื่อการติดตั้งเสร็จสิ้น

ดาวน์โหลดและติดตั้ง Ruby บน Windows

ขั้นตอน 5) คลิกที่ Finish
อย่ายกเลิกการเลือกช่องทำเครื่องหมายที่ติดตั้ง MSYS2 คลิก "เสร็จสิ้น" เพื่อสิ้นสุดการติดตั้ง และหน้าต่างพร้อมท์คำสั่งที่แสดงในรูปด้านล่างจะปรากฏขึ้น

ดาวน์โหลดและติดตั้ง Ruby บน Windows

ขั้นตอน 6) ติดตั้ง MSYS2
ขั้นตอนนี้จะติดตั้ง MSYS2 ซึ่งเป็นแพลตฟอร์มการสร้างที่มีตัวจัดการแพ็คเกจเพื่อให้ติดตั้งแพ็คเกจได้ง่าย Windows.

กด Enter เพื่อติดตั้งส่วนประกอบทั้งหมด เนื่องจากส่วนประกอบทั้งหมดจำเป็นต้องมีสภาพแวดล้อมการพัฒนา Ruby on Rails ที่ราบรื่นจึงจะสามารถทำงานได้ Windows.

ดาวน์โหลดและติดตั้ง Ruby บน Windows

การติดตั้งราง

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

หากคุณได้ติดตั้ง Ruby เวอร์ชันล่าสุดแล้ว และติดตั้ง RubyGems และส่วนขยายที่จำเป็นทั้งหมดแล้ว สิ่งที่คุณต้องทำตอนนี้คือเรียกใช้คำสั่งต่อไปนี้ที่พรอมต์คำสั่งเพื่อรับ Rails บนระบบของคุณ: 'gem install rails'

คุณจะต้องติดตั้งด้วย Node.js หากคุณยังไม่มีเพราะบางไลบรารีที่ Rails ขึ้นอยู่กับจำเป็นต้องมี Javascript รันไทม์เพื่อให้ทำงานได้อย่างถูกต้อง คุณสามารถรับโหนดได้ที่ https://nodejs.org.

เป็นแนวทางทั่วไปและเป็นที่ต้องการในการพัฒนาต่อไป Windowsชุมชน Rails ใช้ Windows ระบบย่อยสำหรับ Linux ที่ให้สภาพแวดล้อม GNU/Linux พร้อมด้วยเครื่องมือบรรทัดคำสั่ง ยูทิลิตี้ และแอปพลิเคชันทั่วไปโดยตรง Windows.

การติดตั้ง Ruby บน Mac

Mac ของคุณมี Ruby ติดตั้งอยู่แล้ว อย่างไรก็ตาม เวอร์ชันที่ติดตั้งไว้ล่วงหน้าอาจเป็นเวอร์ชันเก่า ดังนั้นคุณจะต้องติดตั้งเวอร์ชันใหม่/ล่าสุด

วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการใช้ตัวจัดการแพ็คเกจเช่น homebrew- คุณอาจต้องติดตั้ง Homebrew ก่อนโดยเรียกใช้คำสั่งด้านล่างที่ Terminal

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

นี่จะแสดงคำเตือนและขอให้คุณป้อนรหัสผ่าน ป้อนรหัสผ่าน Mac ของคุณ (คุณจะไม่เห็นอักขระขณะที่คุณพิมพ์) เพียงกด 'Enter' เมื่อคุณพิมพ์รหัสผ่านเสร็จแล้ว จากนั้นรันคำสั่ง Homebrew ง่ายๆ นี้เพื่อติดตั้ง Ruby บน Mac ของคุณ

brew install ruby

และรันคำสั่งนี้ด้วย:

echo "export PATH="/usr/local/bin:/usr/local/sbin:$PATH >> ~/.bash_profile

หากต้องการตั้งค่าการติดตั้ง Ruby นี้เป็น Ruby เริ่มต้นเพื่อให้ทำงานบนระบบของคุณ ไม่ใช่ Ruby ที่ติดตั้งไว้ล่วงหน้า

เพื่อยืนยันว่าการติดตั้งเสร็จสมบูรณ์ คุณสามารถรันคำสั่งต่อไปนี้ที่เทอร์มินัล

ruby --version

สิ่งนี้จะพิมพ์หมายเลขเวอร์ชัน Ruby ที่คุณติดตั้ง ผลลัพธ์จะมีลักษณะดังนี้

ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]

การติดตั้ง Ruby บน Ubuntu (Linux)

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

  • อัปเดต sudo apt – นี่จะอัปเดตค่าเริ่มต้น Ubuntu ที่เก็บ
  • sudo apt ติดตั้ง ruby-full – มันจะดาวน์โหลดและติดตั้ง Ruby ล่าสุด

เพื่อยืนยันว่าการติดตั้งสำเร็จ คุณสามารถรันคำสั่งต่อไปนี้ 'ทับทิม - รุ่น' สิ่งนี้จะพิมพ์เวอร์ชัน Ruby ที่คุณติดตั้ง

การติดตั้งรางบน Ubuntu (Linux)

คุณควรทำตามขั้นตอนด้านล่างเพื่อติดตั้ง Rails บนเครื่อง Linux ของคุณให้สำเร็จ

ขั้นตอน 1) อัปเดตตัวจัดการอัญมณีคอมพิวเตอร์ของคุณด้วยการเรียกใช้ 'ระบบอัพเดตอัญมณี' ที่ Terminal หรือพร้อมท์คำสั่ง

ขั้นตอน 2) วิ่ง 'รางติดตั้งอัญมณี' เพื่อติดตั้ง Rails เวอร์ชันล่าสุดบนคอมพิวเตอร์ของคุณ

ขั้นตอน 3) คุณควรติดตั้ง Bundler Gem เพื่อการจัดการการพึ่งพา Gem ของแอปพลิเคชัน Rails ที่ง่ายดาย วิ่ง 'ชุดติดตั้งอัญมณี' จะได้รับมัน

หลักการสองประการของ Rails

Rails ปฏิบัติตามหลักการออกแบบซอฟต์แวร์ขั้นพื้นฐานและสนับสนุนให้คุณใช้หลักการเหล่านั้นด้วย

สองสิ่งที่พบบ่อยที่สุดคือ:

  • Don't Repeat Yourself (DRY) – สิ่งนี้ทำให้คุณเขียนโค้ดได้กระชับ สม่ำเสมอ และบำรุงรักษาได้
  • แบบแผนเหนือการกำหนดค่า – Rails ได้รับการกำหนดค่าไว้ล่วงหน้าเพื่อใช้ค่าเริ่มต้นที่เหมาะสมซึ่งเหมาะกับการใช้งานทั่วไปส่วนใหญ่ ทำให้การพัฒนาแอปพลิเคชันของคุณรวดเร็วขึ้น และคุณยังต้องมีโค้ดที่ต้องบำรุงรักษาน้อยลงอีกด้วย

Rails – โครงสร้างไฟล์โครงการ

เมื่อติดตั้ง Rails ลงในระบบของคุณแล้ว เรามาสร้างแอปพลิเคชัน Rails กันเถอะ! เราจะเรียนรู้ตัวอย่าง Ruby on Rails และวิธีสร้างแอปพลิเคชัน Todo list ในบทช่วยสอน Ruby on Rails นี้ เรียกใช้คำสั่งต่อไปนี้ 'รางใหม่ todo_app' ใน Terminal ของคุณเพื่อสร้างแอปพลิเคชัน

คำสั่งนี้สร้างไดเร็กทอรีชื่อ 'todo_app' ในไดเร็กทอรีปัจจุบันที่มีโครงสร้างโฟลเดอร์พื้นฐานของเว็บแอปพลิเคชัน Rails ดังแสดงในรูปด้านล่าง:

Rails – โครงสร้างไฟล์โครงการ

คุณจะดูไดเร็กทอรีหลักในตัวอย่าง Ruby on Rails นี้

app – กลุ่มไดเร็กทอรีนี้ใช้ไดเร็กทอรีย่อยที่แตกต่างกันสำหรับ UI/เค้าโครง (มุมมองและตัวช่วย), ตัวควบคุม (ไฟล์ตัวควบคุม) และโมเดล (ตรรกะทางธุรกิจ/แอปพลิเคชัน)

แอป/ตัวควบคุม – ไดเร็กทอรีนี้จัดเก็บไฟล์คอนโทรลเลอร์ที่ Rails ใช้เพื่อจัดการคำขอจากไคลเอนต์

แอพ/สินทรัพย์ – ประกอบด้วยไฟล์คงที่ซึ่งจำเป็นสำหรับส่วนหน้าของแอปพลิเคชันที่จัดกลุ่มเป็นโฟลเดอร์ตามประเภทของไฟล์ – Javaต้นฉบับ ไฟล์ รูปภาพ และสไตล์ชีท

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

แอพ/รุ่น – นี้มีไฟล์

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

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

ถังขยะ – มีสคริปต์ Rails ที่ใช้เริ่มต้นแอปพลิเคชันของคุณ นอกจากนี้ยังสามารถรวมสคริปต์อื่นๆ ที่คุณใช้ในการตั้งค่าและอัพเกรดแอปพลิเคชันได้ด้วย

กำหนดค่า – สิ่งนี้จะเก็บไฟล์การกำหนดค่า - ฐานข้อมูล.yml, สภาพแวดล้อม.rb, เส้นทาง.rbฯลฯ ที่แอปพลิเคชันของคุณต้องทำงาน

ฐานข้อมูล – ไดเร็กทอรีนี้มีไฟล์/สคริปต์ที่ใช้จัดการฐานข้อมูลแอปพลิเคชันของคุณ

ลิบ – ไดเร็กทอรีนี้มีโมดูลเพิ่มเติมสำหรับแอปพลิเคชันของคุณ

บันทึก - นี้มีไฟล์บันทึก – server.log, development.log, test.log และ Production.logฯลฯ ที่ใช้สำหรับการดีบักหรือตรวจสอบแอปพลิเคชันของคุณ

สาธารณะ - ไดเร็กทอรีนี้ประกอบด้วยไฟล์คงที่และเนื้อหาที่คอมไพล์แล้ว เช่น ไฟล์ HTML Javascript ไฟล์ รูปภาพ และสไตล์ชีท

ทดสอบ - ไดเร็กทอรีนี้เก็บไฟล์ทดสอบที่คุณเขียนเพื่อทดสอบการทำงานของแอปพลิเคชันของคุณ

ทีเอ็มพี – ไดเร็กทอรีนี้มีไฟล์ชั่วคราว เช่น ไฟล์แคชและ pid

ผู้ขาย – ไดเร็กทอรีนี้มีไลบรารีของบุคคลที่สาม

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

Gemfile.ล็อค – ต่างจาก Gemfile ที่แสดงรายการ gem ที่คุณต้องการในแอปพลิเคชันของคุณอย่างชัดเจน Gemfile.lock ยังมี gem อื่น ๆ ที่คุณลงรายการใน Gemfile ขึ้นอยู่กับว่าจะถูกติดตั้งโดยอัตโนมัติเพื่อให้เป็นไปตามการขึ้นต่อกัน

Readme.md – คุณใช้ไฟล์นี้เพื่อแบ่งปันรายละเอียดที่สำคัญเกี่ยวกับแอปพลิเคชันของคุณ เช่น การทำงานของแอป วิธีดำเนินการติดตั้งและเรียกใช้แอปพลิเคชัน

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

config.ru – นี่คือไฟล์การกำหนดค่า Rack ที่ให้อินเทอร์เฟซกับเว็บเซิร์ฟเวอร์เพื่อเริ่มแอปพลิเคชันของคุณ

เปลี่ยนไดเร็กทอรีเป็น 'todo_app' ไดเร็กทอรี Rails ที่สร้างและรัน 'เซิร์ฟเวอร์ราง' เพื่อเริ่มแอปพลิเคชัน พิมพ์ localhost: 3000 ในแถบที่อยู่ของเว็บเบราว์เซอร์ของคุณ คุณจะเห็นรูปด้านล่างหากทุกอย่างเป็นไปด้วยดี

Rails – โครงสร้างไฟล์โครงการ

นี่คือโฮมเพจเริ่มต้นของแอปพลิเคชันของคุณ และคุณจะเปลี่ยนแปลงสิ่งนี้ในส่วนหลังของบทช่วยสอน Ruby on Rails นี้ คุณสามารถหยุดเซิร์ฟเวอร์ได้โดยกด 'Ctrl-C'.

Rails – สร้างคำสั่ง

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

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

Rails – สร้างคำสั่ง

คุณยังสามารถวิ่ง 'รางสร้าง "คำสั่ง"' เพื่อดูคำอธิบายว่าคำสั่งทำอะไร มีตัวเลือกที่สะดวกซึ่งสามารถรันได้ด้วยคำสั่งและตัวอย่างการใช้งาน รูปด้านล่างแสดงผลลัพธ์ของการวิ่ง'รางสร้างตัวควบคุม':

Rails – สร้างคำสั่ง

คุณจะใช้คำสั่ง Rails create scaffold เพื่อสร้างโมเดล มุมมอง และตัวควบคุมสำหรับแอปพลิเคชันรายการสิ่งที่ต้องทำที่คุณกำลังสร้างโดยอัตโนมัติ วิ่ง' รางสร้างโครง todo_list ชื่อ: คำอธิบายสตริง: ข้อความ' ใน Terminal ของคุณ (ตรวจสอบว่าคุณยังอยู่ในไดเรกทอรี todo_app)

สิ่งนี้จะสร้างเว็บอินเตอร์เฟส CRUD เต็มรูปแบบ (สร้าง อ่าน อัปเดต และลบ) สำหรับตาราง TodoLists

คำสั่งที่มีประโยชน์อีกประการหนึ่งที่ควรรู้คือ 'รางรถไฟทำลาย' มันจะพลิกกลับอะไรก็ตาม 'รางสร้าง…' ไม่

ราง--การกำหนดเส้นทาง

ระบบกำหนดเส้นทาง Rails เราเตอร์ Rails จัดการคำขอขาเข้าทั้งหมดไปยังเว็บแอปพลิเคชันของคุณ โดยตรวจสอบ URL ของคำขอที่เข้ามา จากนั้นแมปแต่ละคำขอกับการดำเนินการของคอนโทรลเลอร์ที่รับผิดชอบในการจัดการ โดยใช้ไวยากรณ์พิเศษที่ระบุในไฟล์เส้นทาง (config/เส้นทาง.rb).

ไฟล์เส้นทางช่วยในการควบคุมทุกแง่มุมของ URL ของแอปพลิเคชันเว็บของคุณ Rails ใช้การออกแบบ RESTful ตามค่าเริ่มต้นโดยอิงตามรูปแบบสถาปัตยกรรม REST ซึ่งให้การแมประหว่างคำกริยา HTTP และคำขอ (URL) กับการดำเนินการของตัวควบคุม

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

ในบรรทัดคำสั่ง ตรวจสอบให้แน่ใจว่าคุณยังอยู่ที่รากของแอปพลิเคชัน (ไดเรกทอรี todo_app)

จากนั้นเริ่มเซิร์ฟเวอร์อีกครั้งด้วย 'เซิร์ฟเวอร์ราง'. ชนิด http://localhost:3000/todo_lists/ ในเบราว์เซอร์ของคุณแล้วกด Enter คุณควรกลับมาที่หน้าเว็บดังแสดงในรูปด้านล่างของตัวอย่าง Ruby on Rails:

ราง--การกำหนดเส้นทาง

นี่คือมุมมองรายการสิ่งที่ต้องทำที่คำสั่ง Scaffold สร้างขึ้น และถูกควบคุมโดยการดำเนินการดัชนีของ TodoListsController

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

ราง--การกำหนดเส้นทาง

สังเกตว่า URL เปลี่ยนเป็น http://localhost:3000/todo_lists/new- นี่คือหน้าสำหรับสร้างรายการสิ่งที่ต้องทำใหม่ และถูกควบคุมโดยวิธีการ/การดำเนินการใหม่ของ TodoListsController

ป้อนชื่อรายการสิ่งที่ต้องทำและคำอธิบายในแบบฟอร์มแล้วคลิกปุ่มสร้างรายการสิ่งที่ต้องทำ URL ควรเปลี่ยนเป็น http://localhost:3000/todo_lists/1ดังแสดงในรูปด้านล่างของตัวอย่างโค้ด Ruby on Rails:

ราง--การกำหนดเส้นทาง

นี่คือหน้าแสดงรายการของรายการสิ่งที่ต้องทำ และควบคุมโดยวิธี/การดำเนินการแสดงของ TodoListsController หากจะกลับไป. http://localhost:3000/todo_lists/ตอนนี้คุณควรเห็นรูปด้านล่างพร้อมกับรายการสิ่งที่ต้องทำใหม่ที่เพิ่ม:

ราง--การกำหนดเส้นทาง

Rails สามารถแมปคำขอ (URL) ต่างๆ กับการกระทำของ TodoListsController ที่เกี่ยวข้องได้โดยใช้คำจำกัดความเส้นทางใน config/routes.rb

หากคุณดูไฟล์นี้ คุณจะเห็นบรรทัดเดียว 'แหล่งข้อมูล: todo_lists'เป็นวิธีเริ่มต้นของ Rails ในการเขียนเส้นทางที่สงบ บรรทัดเดียวนี้จะสร้างเส้นทางเจ็ดเส้นทางทั้งหมดที่แมปไปยังตัวควบคุม TodoLists

ตามธรรมเนียมแล้ว การดำเนินการของตัวควบคุมแต่ละตัวยังแมปกับการดำเนินการ CRUD (สร้าง อ่าน อัปเดต และลบ) เฉพาะในฐานข้อมูลด้วย

คุณสามารถเรียกใช้ 'เส้นทางคราด' ในบรรทัดคำสั่งของคุณเพื่อดูเส้นทางต่างๆ ที่มีอยู่ในแอปพลิเคชันของคุณ รูปด้านล่างแสดงผลลัพธ์ของการวิ่ง 'เส้นทางรถไฟ' ในบรรทัดคำสั่ง/เทอร์มินัลของคุณ

ราง--การกำหนดเส้นทาง

ราง--มุมมอง

เลเยอร์มุมมองเป็นหนึ่งในองค์ประกอบของกระบวนทัศน์ MVC และมีหน้าที่ในการสร้างการตอบสนอง HTML สำหรับแต่ละคำขอไปยังแอปพลิเคชันของคุณ Rails ตามค่าเริ่มต้นจะใช้ ERB (Embedded Ruby) ซึ่งเป็นระบบเทมเพลตที่ทรงพลังสำหรับ Ruby

ERB ทำให้การเขียนเทมเพลตเป็นเรื่องง่ายและบำรุงรักษาได้โดยการรวมข้อความธรรมดาเข้ากับโค้ด Ruby เพื่อการทดแทนตัวแปรและการควบคุมโฟลว์ เทมเพลต ERB มีนามสกุล .html, .erb หรือ .erb

ส่วนใหญ่คุณจะใช้แท็กมาร์กเกอร์สองตัวผสมกันเท่านั้น ซึ่งแต่ละแท็กจะทำให้โค้ดที่ฝังได้รับการประมวลผลและจัดการในลักษณะเฉพาะ

แท็กที่มีเครื่องหมายเท่ากับ - บ่งชี้ว่าโค้ดที่ฝังไว้นั้นเป็นนิพจน์ และผลลัพธ์ของโค้ดควรถูกแทนที่โดยตัวเรนเดอร์เมื่อเรนเดอร์เทมเพลต

อีกแท็กที่ไม่มีเครื่องหมายเท่ากับ - ระบุให้ผู้แสดงภาพทราบว่าไม่ควรแทนที่/พิมพ์ผลลัพธ์ของโค้ดเมื่อสร้างการแสดงผลเทมเพลต

คอนโทรลเลอร์แต่ละตัวในแอปพลิเคชัน Rails ของคุณมีไดเร็กทอรีย่อยที่เกี่ยวข้อง แอพ/มุมมองและแต่ละการกระทำ/วิธีการในคอนโทรลเลอร์จะมีไฟล์ .html และ .erb ที่สอดคล้องกันในไดเร็กทอรีนี้

ดูแอป/มุมมองของแอปสิ่งที่ต้องทำที่คุณกำลังสร้าง คุณจะพบไดเร็กทอรีย่อยชื่อ 'สิ่งที่ต้องทำ_รายการ' ภายในไดเร็กทอรีย่อยนี้ .html.erb ไฟล์ที่มีชื่อสอดคล้องกับการกระทำ/วิธีการในไฟล์ รายการสิ่งที่ต้องทำ ตัวควบคุม

Rails – ActiveRecord, รูปแบบบันทึกที่ใช้งานอยู่ และ ORM

ActiveRecord คือการนำ Ruby ไปใช้ในรูปแบบ Active Record ซึ่งเป็นรูปแบบง่ายๆ โดยที่คลาสแสดงถึงตาราง และอินสแตนซ์ของคลาสแสดงถึงแถวในคลาสนั้น

ActiveRecord มักเรียกกันว่า ORM (Object Relational Mapping) ซึ่งเป็นเทคนิคที่ช่วยให้คุณจัดการฐานข้อมูลโดยใช้ภาษาที่คุณคุ้นเคยที่สุด ไม่เชื่อเรื่องฐานข้อมูล ดังนั้นคุณจึงสามารถสลับระหว่างฐานข้อมูลได้อย่างง่ายดาย (เช่น SQLite, MySQL, PostgreSQL, เซิร์ฟเวอร์ SQL, Oracleฯลฯ) ชุดนี้เพิ่มเติมสำหรับความต้องการแอปพลิเคชันของคุณด้วยรหัส/ตรรกะเดียวกัน

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

เพื่อสิ่งนั้น คุณเพียงแค่ต้องพิมพ์ 'TodoList.all' และ Active Record จะให้อาร์เรย์ที่เต็มไปด้วยออบเจ็กต์ TodoList ที่คุณสามารถเล่นได้ตามที่คุณต้องการ

สิ่งที่คุณต้องทำคือตั้งค่าการกำหนดค่าที่ถูกต้อง config/database.ymlและ Active Record จะค้นหาความแตกต่างทั้งหมดระหว่างระบบฐานข้อมูลต่างๆ ดังนั้นเมื่อคุณเปลี่ยนจากที่หนึ่งไปอีกที่หนึ่ง คุณไม่จำเป็นต้องคิดถึงมัน

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

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

Rails – การโยกย้าย

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

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

Rails Migrations ใช้ Ruby Domain specific Language (DSL) สิ่งนี้ทำหน้าที่เป็นนามธรรมและทำให้สามารถใช้หรือเปลี่ยนแปลงกลไกฐานข้อมูลของคุณตามความต้องการของคุณ

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

Rails – สมาคม ActiveRecord

การเชื่อมต่อระหว่างโมเดล ActiveRecord สองโมเดลเรียกว่าการเชื่อมโยง การเชื่อมโยงทำให้การดำเนินการกับเรกคอร์ดต่างๆ ในโค้ดของคุณง่ายขึ้นมาก การเชื่อมโยงสามารถแบ่งออกเป็นสี่ประเภท: –

หนึ่งถึงหนึ่ง: – สิ่งนี้บ่งชี้ว่าเรกคอร์ดมีอินสแตนซ์หนึ่งของโมเดลอื่นอย่างแม่นยำ ตัวอย่างที่ดีคือโปรไฟล์ผู้ใช้ ผู้ใช้มีโปรไฟล์เดียวเท่านั้น มันใช้ มี _หนึ่ง คำสำคัญ.

หนึ่งต่อหลาย: – นี่คือการเชื่อมโยงที่พบบ่อยที่สุด และบ่งชี้ว่าโมเดลหนึ่งมีอินสแตนซ์ของโมเดลอื่นเป็นศูนย์หรือมากกว่า การใช้งานของคุณ มี _มากมาย คำหลักเพื่อแสดงถึงการเชื่อมโยงนี้

หลายต่อหลายคน: – การเชื่อมโยงนี้ซับซ้อนกว่าเล็กน้อย และ ActiveRecord มีวิธีจัดการสองวิธี ใช้ has_and_belongs_to_many และ มี_มากมาย, ซึ่งช่วยให้คุณเข้าถึงความสัมพันธ์ที่กำหนดไว้ในตารางแยกต่างหาก

Polymorphic หนึ่งต่อหลาย:- นี่คือการเชื่อมโยงขั้นสูงเพิ่มเติมสำหรับคุณใน Rails คุณสามารถใช้มันเพื่อกำหนดโมเดลที่อาจเป็นของโมเดลที่แตกต่างกันจำนวนมากในการเชื่อมโยงเดียว

Rails – การตรวจสอบ ActiveRecord

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

การตรวจสอบความถูกต้องยังช่วยเพิ่มระดับการรักษาความปลอดภัยเพิ่มเติมให้กับแอปพลิเคชันของคุณจากผู้ใช้ที่เป็นอันตรายจากการเข้าถึงข้อมูลในฐานข้อมูลของคุณ Rails นำเสนอ API ที่ดีของตัวช่วยตรวจสอบความถูกต้องใน ActiveRecord เพื่อให้ฐานข้อมูลของคุณสะอาด ปลอดภัย และปราศจากข้อผิดพลาด

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

วิธี ActiveRecord ต่อไปนี้จะเรียกใช้การตรวจสอบความถูกต้องเมื่อใช้หรือเรียกใช้บนวัตถุโมเดล สร้าง สร้าง! บันทึก บันทึก! อัปเดต และอัปเดต!- คนที่มีปัง (สร้าง! บันทึก! และอัปเดต!) ยกข้อยกเว้นหากบันทึกไม่ถูกต้องในขณะที่ไม่ได้เป็นเช่นนั้น

ตัวช่วยตรวจสอบ ActiveRecord ที่พบมากที่สุดคือ:-

ยืนยัน:– ตัวช่วยตรวจสอบนี้มีประโยชน์สำหรับการตรวจสอบความถูกต้องของสองฟิลด์ที่มีรายการเดียวกัน เช่น การยืนยันรหัสผ่านและรหัสผ่าน จะใช้ร่วมกับตัวช่วยตรวจสอบสถานะ

การแสดงตน:– เพื่อตรวจสอบว่าฟิลด์ไม่ว่างเปล่า

เอกลักษณ์: รับประกันค่าที่ไม่ซ้ำกันสำหรับฟิลด์ เช่น ชื่อผู้ใช้

ความยาว:- เพื่อบังคับใช้ขีดจำกัดความยาวอักขระของฟิลด์

คุณยังสามารถสร้างการตรวจสอบแบบกำหนดเองของคุณได้โดยใช้วิธีการตรวจสอบและส่งผ่านชื่อของวิธีการตรวจสอบแบบกำหนดเอง

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

Rails – แอคชั่นคอนโทรลเลอร์

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

คลาสคอนโทรลเลอร์ของคุณสืบทอดมาจาก ApplicationController ซึ่งมีโค้ดที่สามารถเรียกใช้ในคอนโทรลเลอร์อื่นทั้งหมดและสืบทอดมาจากคลาส ActionController

ตัวควบคุมมอบสิ่งต่อไปนี้ให้กับแอปพลิเคชันของคุณ:

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

ราง – การกำหนดค่า

คุณสามารถกำหนดค่าส่วนประกอบต่างๆ เช่น ตัวเริ่มต้น สินทรัพย์ ตัวสร้าง มิดเดิลแวร์ ฯลฯ ได้ โดยใช้ตัวเริ่มต้นแอปพลิเคชัน Rails และไฟล์กำหนดค่าในไดเร็กทอรี config ไฟล์เช่น config/application.rb, config/environments/development.rb และ config/environments/test.rb ฯลฯ นอกจากนี้ คุณยังสามารถกำหนดค่าการตั้งค่าแบบกำหนดเองสำหรับแอปพลิเคชันของคุณได้อีกด้วย

Rails – การดีบัก

เมื่อคุณสร้างแอปพลิเคชันของคุณ จะต้องมี/ต้องแก้ไขโค้ดของคุณ Rails ทำให้สิ่งนี้ง่ายขึ้นโดยใช้ byebug gem คุณสามารถเริ่มเซสชันการแก้ไขข้อบกพร่องได้โดยใส่คีย์เวิร์ด 'byebeg' ที่ใดก็ได้ในโค้ดแอปพลิเคชันของคุณ

การดำเนินการนี้จะหยุดการดำเนินการชั่วคราว ณ จุดนั้น byebug gem ให้คำสั่งหลายอย่างแก่คุณ สิ่งที่มีประโยชน์ที่สุดคือ:

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

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

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

สรุป

  • Ruby เป็นภาษาโปรแกรมเชิงวัตถุล้วนๆ
  • Ruby มีไวยากรณ์ที่สวยงามซึ่งทั้งอ่านและเขียนได้ง่าย
  • Rails เป็นเฟรมเวิร์กการพัฒนาที่เขียนด้วยภาษา Ruby สำหรับการสร้างเว็บแอปพลิเคชัน
  • กระบวนการติดตั้งจะขึ้นอยู่กับระบบปฏิบัติการของคุณ
  • Rails ได้รับการบรรจุเป็น Ruby gem และคุณสามารถใช้มันเพื่อสร้างแอปพลิเคชันที่หลากหลายได้
  • คุณจะสร้างแอปพลิเคชันรายการสิ่งที่ต้องทำในบทช่วยสอนนี้ เรียกใช้ followincomm'n'n' 'rails netoda'p'p'p' ใน R Terminal ของคุณเพื่อสร้างแอปพลิเคชัน
  • คำสั่ง Rails create ใช้เทมเพลตเพื่อสร้างสิ่งที่มีประโยชน์มากมายในแอปพลิเคชันของคุณ
  • ระบบการกำหนดเส้นทาง Rails เราเตอร์ Rails ช่วยให้คุณจัดการคำขอขาเข้าทั้งหมดไปยังเว็บแอปพลิเคชันของคุณ
  • เลเยอร์มุมมองเป็นหนึ่งในองค์ประกอบของกระบวนทัศน์ MVC และมีหน้าที่ในการสร้างการตอบสนอง HTML สำหรับแต่ละคำขอไปยังแอปพลิเคชันของคุณ
  • ActiveRecord คือการนำ Ruby ไปใช้ในรูปแบบ Active Record
  • การโยกย้าย Rails เป็นเพียงสคริปต์ที่คุณใช้แก้ไขฐานข้อมูลแอปพลิเคชันของคุณ
  • การเชื่อมต่อระหว่างโมเดล ActiveRecord สองโมเดลเรียกว่าการเชื่อมโยง
  • การตรวจสอบความถูกต้องช่วยให้แน่ใจว่าคุณมีข้อมูลที่ถูกต้อง เนื่องจากการทำงานกับข้อมูลที่ไม่ถูกต้องเป็นสิ่งที่แย่มากและอาจทำให้คุณต้องเสียเงินและธุรกิจของคุณ
  • ตัวควบคุม Rails ช่วยให้คุณอำนวยความสะดวกและประสานการสื่อสารระหว่างผู้ใช้ โมเดล และมุมมอง
  • Rail ช่วยคุณกำหนดค่าส่วนประกอบต่างๆ เช่น ตัวเริ่มต้น สินทรัพย์ ตัวสร้าง มิดเดิลแวร์ ฯลฯ