ความหมายของ erb คืออะไร?


132

ทำไมมุมมองของแอพพลิเคชั่น Rails จึงอยู่ในรูปแบบ*.erb.html? "erb" หมายถึงอะไร?

คำตอบ:


164

erb ย่อมาจาก "Embedded RuBy" A .html.erbหรือ.erb.htmlไฟล์เป็น HTML ที่มีรหัส Ruby ฝังอยู่; Rails จะประเมิน Ruby เพื่อเพิ่มเนื้อหาลงในไฟล์แบบไดนามิกและจะส่งออกไฟล์ HTML "บริสุทธิ์" สำหรับการแสดงผล


9
โบนัส: คุณยังสามารถเพิ่มโลแคลของคุณลงในส่วนผสม: index.en.html.erbและindex.de.html.erb
iain

3
ง่อยพวกเขาควรลบ html คุณไม่เห็น html.php
luckyguy73

46

ในฐานะที่เป็น @Chowlett กล่าวก่อน Erb ย่อมาจากสมองกลฝังทับทิม เมื่อคุณกำหนดไฟล์ใด ๆ เป็น ".html.erb" หมายความว่าเป็นไฟล์ HTML ที่มีรหัสทับทิมฝังอยู่และคล้ายกับ ".rhtml" ส่วนขยายของไฟล์ราง

คุณสามารถดูความแตกต่างโดยละเอียดและสวยงามระหว่าง ".html.erb" และ ".rhtml" คลิกที่นี่

เช่นเดียวกับ ".rhtml" คุณยังสามารถเปลี่ยนชื่อนามสกุล ".rjs" เป็น ".js.erb" หรือ ".rxml" เป็น ".xml.erb"

รูปแบบนี้จะแยกประเภทเนื้อหาออกจากเครื่องมือเทมเพลตซึ่งในกรณีนี้คือ "erb"


1
ขอบคุณ @khanh ที่ชื่นชมคำตอบของฉัน :)
Nimesh Nikum

9

จากAn Introduction to ERB Templatingของ Stuart Ellis :

ERB (Embedded RuBy) เป็นคุณสมบัติของ Ruby ที่ช่วยให้คุณสร้างข้อความประเภทใดก็ได้ในปริมาณใด ๆ จากเทมเพลตได้อย่างสะดวก เทมเพลตรวมข้อความธรรมดาเข้ากับโค้ด Ruby สำหรับการแทนที่ตัวแปรและการควบคุมโฟลว์ซึ่งทำให้ง่ายต่อการเขียนและบำรุงรักษา

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

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

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

ERB เป็นส่วนหนึ่งของไลบรารีมาตรฐาน Ruby คุณไม่จำเป็นต้องติดตั้งซอฟต์แวร์อื่นเพื่อใช้งาน

บทความต้นฉบับมีรายละเอียดเพิ่มเติมและคำแนะนำสั้น ๆ เกี่ยวกับการใช้ ERB นอกจากนี้คุณยังสามารถอ่านเอกสารอย่างเป็นทางการ


หมายเหตุ: ก่อนหน้านี้บล็อกที่อ้างถึงข้างต้นถูกโพสต์เป็นคำตอบโดยผู้ใช้รายอื่นโดยไม่ได้เชื่อมโยงกับAn Introduction to ERB Templatingหรือยอมรับว่าไม่ใช่งานของผู้ใช้รายนั้น โพสต์นั้น (ถูกต้อง) ลบเนื่องจากการลอกเลียนแบบ อย่างไรก็ตามฉันคิดว่ามันเป็นคำตอบที่มีประโยชน์ดังนั้นฉันจึงโพสต์คำพูดใหม่โดยให้การระบุแหล่งที่มาที่เหมาะสมกับ Stuart Ellis ผู้เขียนต้นฉบับ


5

Embedded Ruby หรือที่เรียกว่า ERb เป็นระบบแม่แบบหลักในการรวมเนื้อหาแบบไดนามิกในหน้าเว็บ - Michael Hertl


4

จากรูปแบบเทมเพลต ไฟล์ที่มีเทมเพลต ERB อาจมีชื่อใด ๆ ก็ได้ แต่เป็นแบบแผนที่ชื่อของไฟล์ควรลงท้ายด้วยนามสกุล. erb Rails ต้องการให้ไฟล์เทมเพลตมีนามสกุลของประเภทเอาต์พุตตามด้วย. erb เพื่อให้ชื่อเช่น layout.html.erb ระบุเทมเพลต HTML

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

ในทับทิมมีค่าเริ่มต้นบางอย่างค่าเริ่มต้นหนึ่งคือคอนโทรลเลอร์จะแสดงหน้า html แต่คุณสามารถทำให้มันตอบสนองด้วย. xml หรือ. json หรือ. csv ได้อย่างง่ายดายหากคุณเขียน web api ไว้

Erb เป็นคลาสไลบรารีที่สร้างข้อความ ไม่มีอะไรมาก. คาดว่าไฟล์ที่มีข้อความคงที่และรหัสทับทิมผสมกัน มันจะเรียกใช้รหัสทับทิมและเขียนผลลัพธ์ไปยังไฟล์อื่นซึ่งในกรณีที่คอนโทรลเลอร์ของคุณเป็น html


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.