2010-12-27 40 views
8

Tôi đang ngày càng phát triển mạnh hơn trong phát triển RoR. ERB không hoàn toàn cảm thấy đúng với tôi. Tôi đã làm điều này một lần trước đó với JSP. Nhúng mã Ruby trong đánh dấu của tôi không cảm thấy như một kế hoạch tốt ngay cả khi logic được xem cụ thể. Có lẽ nỗi sợ của tôi là vô căn cứ nhưng nó cảm thấy nguy hiểm. Thêm vào đó, có rất nhiều cách gõ liên quan.Các giải pháp thay thế cho ERB

Tôi đã tìm thấy HAML và tôi đang đưa ra một số đánh giá khác. Nếu nó là một lựa chọn tốt, có lẽ bạn có thể cung cấp một số nguồn lực tốt cho nó.

Ngoài HAML, các lựa chọn thay thế khác cho ERB có cho lớp Rails View là gì?

Nỗi lo sợ của tôi với ERB có được điều chỉnh không?

Trả lời

7

Nếu bạn không thích Ruby trong quan điểm của bạn, HAML sẽ không giúp bạn. Mặc dù cú pháp khốc liệt hơn, nó sử dụng Ruby nhúng giống như ERB.

Nếu bạn muốn tránh hoàn toàn logic trong chế độ xem của mình, hãy xem một cái gì đó như Mustache. Nó sử dụng một phong cách templating nhấn mạnh một tách chặt chẽ hơn của logic từ trình bày (quan điểm logic).

12

Mã nhúng của Ruby trong mẫu không phải là vấn đề. Nó cung cấp Erb và Haml sức mạnh to lớn như ngôn ngữ mẫu. Thật vậy, nhiều ngôn ngữ mẫu bị ảnh hưởng bởi vì các mẫu không có mã (ví dụ: ngôn ngữ mẫu của Django).

Vấn đề thực sự đôi khi xảy ra là khi nhà phát triển viết mã phức tạp hoặc mã kéo dữ liệu hoặc mã cập nhật dữ liệu hoặc đưa ra quyết định về mã vào mẫu.

Ruby và Rails cung cấp cho nhà phát triển sức mạnh to lớn và linh hoạt. Trách nhiệm của nhà phát triển là trách nhiệm. Truy xuất dữ liệu của bạn từ bên trong bộ điều khiển. Di chuyển mã phức tạp vào một trình trợ giúp. Vv

<%= link_to edit_post_path(@post) do %> 
    Edit post "<%= @post.title %>"!!! 
<% end %> 

Trên đây là Ruby đơn giản được nhúng, và cũng được đặt ở chế độ xem. Phiên bản Haml là:

= link_to edit_post_path(@post) do 
    Edit post "#{@post.title}"!!! 

Vì vậy, miễn là bạn giữ mã đơn giản và bất kỳ mã phức tạp nào được chuyển vào bộ điều khiển hoặc trình trợ giúp, bạn sẽ ổn.

Lưu ý rằng các mẫu Haml và Erb chứa số lượng mã Ruby nhúng tương đương, ngoại trừ Haml loại bỏ tất cả các số end s.

+0

Xin chào, gọn gàng! Nó từng là các dòng bắt đầu bằng '==' cho nội suy, nhưng có vẻ như nó không còn là trường hợp nữa. TIL! : D – Matchu

0

tôi, như bạn, đang đến với Rails (và Ruby) sau khi đã phục vụ một thời gian trong Java. Tôi đã có một phản ứng nội tạng khi tôi nhìn thấy ERB, nhớ lại những ngày xưa tồi tệ của JSP trước khi tôi phát hiện ra Velocity và Freemarker.

Dù sao, tôi đang nhìn vào hai ngôn ngữ mẫu mà có thể bạn quan tâm:

Nếu Handlerbars bạn quan tâm, hãy xem Handlerbars.rb. Có ít nhất một dự án khác theo tên đó, nhưng cái này không phải là một cổng Ruby của Handlerbars, mà là một trình bao bọc Ruby xung quanh Handlerbars.js. Vì vậy, đó là "Handlerbars thực sự."

Các vấn đề liên quan