Ý nghĩa của erb là gì?


132

Tại sao giao diện của ứng dụng Rails ở định dạng *.erb.html? "Erb" có nghĩa là gì?

Câu trả lời:


164

erb là viết tắt của "RuBy nhúng". Một .html.erbhoặc .erb.htmltệp là HTML với mã Ruby được nhúng vào; Rails sẽ đánh giá Ruby để thêm nội dung vào tệp một cách linh hoạt và sẽ xuất ra tệp HTML "thuần túy" để kết xuất.


9
Bonus: bạn cũng có thể thêm miền địa phương của bạn để trộn: index.en.html.erbindex.de.html.erb
Iain

3
khập khiễng, họ nên loại bỏ html. bạn không thấy
html.php

46

Như @Chowlett đã đề cập trước đó, erb là viết tắt của Embedded Ruby . Khi bạn xác định bất kỳ tệp nào là ".html.erb" có nghĩa là tệp HTML có mã ruby ​​được nhúng trong đó và nó tương tự như phần mở rộng ".rhtml" của tệp rails.

Bạn có thể thấy một sự khác biệt chi tiết và tốt đẹp giữa ".html.erb" và ".rhtml" Bấm vào đây

Giống như ".rhtml", bạn cũng có thể đổi tên phần mở rộng ".rjs" thành ".js.erb" hoặc ".rxml" thành ".xml.erb"

Định dạng này tách ra loại nội dung từ công cụ mẫu là "erb" trong trường hợp này.


1
Cảm ơn @khanh đã đánh giá cao câu trả lời của tôi :)
Nimesh Nikum

9

Từ Stuart Ellis's Giới thiệu về ERB Templating :

ERB (Embedded RuBy) là một tính năng của Ruby cho phép bạn thuận tiện tạo bất kỳ loại văn bản nào, với bất kỳ số lượng nào, từ các mẫu. Bản thân các mẫu kết hợp văn bản đơn giản với mã Ruby để thay thế và kiểm soát luồng thay đổi, giúp chúng dễ dàng viết và duy trì.

Mặc dù ERB thường được thấy nhất khi tạo các trang Web, nó cũng được sử dụng để tạo tài liệu XML, nguồn cấp RSS, mã nguồn và các dạng khác của tệp văn bản có cấu trúc. Nó có thể cực kỳ có giá trị khi bạn cần tạo các tệp bao gồm nhiều lần lặp lại của một mẫu chuẩn, chẳng hạn như bộ kiểm tra đơn vị.

Thành phần chính của ERB là một thư viện mà bạn có thể gọi trong các ứng dụng Ruby và các tác vụ Rake của mình. Thư viện này chấp nhận bất kỳ chuỗi nào dưới dạng mẫu và không đặt ra giới hạn nào đối với nguồn của mẫu. Bạn có thể xác định một mẫu hoàn toàn trong mã của bạn hoặc lưu nó ở một vị trí bên ngoài và tải nó theo yêu cầu. Điều này có nghĩa là bạn có thể giữ các mẫu trong tệp, cơ sở dữ liệu SQL hoặc bất kỳ loại lưu trữ nào khác mà bạn muốn sử dụng.

Các bản phân phối Ruby cũng bao gồm một tiện ích dòng lệnh cho phép bạn xử lý các mẫu được giữ trong các tệp mà không cần viết bất kỳ mã bổ sung nào. Theo logic, tiện ích này được gọi là erb.

ERB là một phần của thư viện tiêu chuẩn Ruby. Bạn không cần phải cài đặt bất kỳ phần mềm nào khác để sử dụng nó.

Bài viết gốc chứa nhiều chi tiết hơn và hướng dẫn ngắn để sử dụng ERB. Bạn cũng có thể đọc các tài liệu chính thức .


Lưu ý: khối được trích dẫn ở trên trước đây đã được đăng bởi một người dùng khác mà không liên kết với Giới thiệu về ERB Templating hoặc thừa nhận rằng đó không phải là công việc của người dùng. Bài đăng đó (đúng) đã bị xóa vì đạo văn. Tuy nhiên, tôi nghĩ rằng đó là một câu trả lời hữu ích , vì vậy tôi đã đăng lại trích dẫn đưa ra sự quy kết đúng đắn cho Stuart Ellis, tác giả ban đầu.


5

Ruby nhúng, còn được gọi là ERb, là hệ thống mẫu chính để bao gồm nội dung động trong các trang web. --Michael Hertl


4

từ định dạng mẫu Một tệp có chứa mẫu ERB có thể có bất kỳ tên nào, nhưng đó là quy ước rằng tên của tệp phải kết thúc bằng phần mở rộng .erb. Rails yêu cầu các tệp mẫu phải có phần mở rộng của loại đầu ra, theo sau là .erb, để một tên như layout.html.erb chỉ ra một mẫu HTML.

tập tin erb sẽ chỉ đơn giản là xuất văn bản. Chỉ có bấy nhiêu thôi. Văn bản nào phụ thuộc vào sự pha trộn giữa văn bản tĩnh và mã ruby ​​bên trong tệp. Bạn có thể sử dụng erb để tạo html sử dụng mặc định trong Rails, vì đó là những gì trình duyệt cần để hiển thị một trang.

Trong ruby ​​có một số giá trị mặc định nhất định Một mặc định là bộ điều khiển sẽ hiển thị trang html. Nhưng bạn có thể dễ dàng làm cho nó phản hồi bằng .xml hoặc .json hoặc .csv nếu bạn viết một api web cho nó

Erb là một lớp thư viện tạo văn bản. Chỉ có bấy nhiêu thôi. Nó mong đợi một tập tin chứa văn bản tĩnh và mã ruby ​​trộn lẫn. Nó sẽ chạy mã ruby ​​và ghi kết quả vào một tệp khác, trong trường hợp cho bộ điều khiển của bạn là html


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.