2008-12-30 32 views
41

Trong ứng dụng đường ray, trong trường hợp nào bạn sẽ sử dụng một phần và khi nào bạn sẽ sử dụng trợ giúp? Tôi tìm thấy cả hai rất giống nhau, vì chúng đại diện cho các mảnh đánh dấu.Khi nào cần sử dụng Helpers thay vì Partials

Có quy ước nào về điều này không? đó là 'đường ray' của việc sử dụng chúng?

Cảm ơn!

Trả lời

28

Tôi đoán quy tắc chung của tôi là sử dụng trình trợ giúp để tạo một "đơn vị" hiển thị - như một khoảng chứa liên kết - và sử dụng một phần để xây dựng một đơn vị hiển thị phức tạp hơn hơn một "đơn vị" màn hình - như lưới hoặc menu.

2

Tôi sử dụng người trợ giúp khi mã có thể được sử dụng lại trong các dự án khác và phần tách biệt cho mã cụ thể cho dự án.

2

Tôi sử dụng partials làm subtemplates (ví dụ: một thứ có nhiều đánh dấu được sử dụng lặp đi lặp lại, như một bài đăng trên blog) và người trợ giúp để xử lý hiển thị nhiều điều logic hơn (một div chỉ hiển thị với quản trị viên, ví dụ).

17

Một phần là một đoạn xem, một phần của chế độ xem hữu ích ở nhiều nơi và được kéo ra để loại bỏ trùng lặp. Điểm mấu chốt, tuy nhiên, là quan điểm - độc lập hoặc một phần - là để trình bày.

Như bạn đã biết, bộ điều khiển dành cho logic xử lý. Nó là không thể tránh khỏi, tuy nhiên, bạn sẽ cần một số xử lý logic khi trình bày một cái nhìn. Vì vậy, ví dụ, nếu bạn có một số mảnh trình bày chỉ có sẵn cho quản trị viên, bạn có thể trích xuất logic đó thành người trợ giúp và giữ chế độ xem "thuần túy" và chỉ thuyết trình. Người trợ giúp chắc chắn sẽ chứa mã trình bày - thẻ html và như vậy - nhưng đó là sản phẩm phụ của việc sử dụng của họ, chứ không phải chức năng chính của họ.

Bạn cũng có thể kết hợp hai phần - một phần cho bản trình bày quản trị và một cho bản trình bày của người dùng và người trợ giúp với logic để xác định kết quả được hiển thị trong một tình huống cụ thể.

Chỉ cần $ 0,02 của tôi.

+3

Nhưng đường ray chỉ sử dụng trình trợ giúp cho bản trình bày (như hộp kiểm và trường văn bản) –

7

Các câu trả lời khác thể hiện sự đồng thuận về khái niệm về việc sử dụng người trợ giúp so với partials. Hãy xem xét những điều sau đây để đọc thêm:

Basecamp dev đưa ra luận cứ để giảm thiểu HTML trong những người giúp đỡ http://37signals.com/svn/posts/1108-what-belongs-in-a-helper-method

Viget dev benchmarked mỗi và phát hiện ra rằng những người giúp đỡ là nhanh hơn so với partials http://www.viget.com/extend/helpers-vs-partials-a-performance-question/

+1

+1 để chia sẻ liên kết tài nguyên tuyệt vời –

+2

Hiệu suất tương tự trong sản xuất: http://bindle.me/blog/index.php/26/helpers-vs -những góc nhìn từ bên ngoài – sampablokuper

0

Partials là một phần của chế độ xem có thể có nhiều mã HTML cùng với mã ruby. Bạn cũng có thể sử dụng partials trong bộ điều khiển trong phương thức kết xuất.

Trong trường hợp người trợ giúp, bạn có thể có phương pháp cho đoạn mã html ngắn. Bạn có thể có một số phương pháp tính toán liên quan mà bạn muốn sử dụng trong tệp xem của bạn.

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