[英]Rails: calling yield in a partial template?
我有時會在部分erb模板中看到這個:
<%= yield :someval %>
其他時候根本沒有收益。
在部分中調用收益率有什么好處?
我過去曾經使用它,如果我有一部分可以從不同頁面調用,可能需要頁面中的某些上下文內容。
我用過的用例是菜單。 我有我的庫存菜單項,但后來我有一個yield(:menu)
,所以用戶加載管理頁面,我可以從頁面添加菜單項,而不是在部分本身寫一個條件語句。
這是一些偽代碼:
%ul
%li Home
%li Users
%li Roles
= yield(:menu)
- content_for :menu do
%li Add User
%li Change permissions
- content_for :menu do
%li Add Role
相反:
%ul
%li Home
%li Users
%li Roles
- if current_controller == 'users'
%li Add User
%li Change permissions
- if current_controller == 'roles'
%li Add Role
雖然兩者都是功能性的(如果它是真正的代碼),我更喜歡第一種方法。 第二個可以失控,並且非常快速地變得非常難看。 但這是一個偏好的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.