簡體   English   中英

Rails:在部分模板中調用yield?

[英]Rails: calling yield in a partial template?

我有時會在部分erb模板中看到這個:

<%= yield :someval %>

其他時候根本沒有收益。

在部分中調用收益率有什么好處?

我過去曾經使用它,如果我有一部分可以從不同頁面調用,可能需要頁面中的某些上下文內容。

我用過的用例是菜單。 我有我的庫存菜單項,但后來我有一個yield(:menu) ,所以用戶加載管理頁面,我可以從頁面添加菜單項,而不是在部分本身寫一個條件語句。

這是一些偽代碼:

_menu.haml

%ul
  %li Home
  %li Users
  %li Roles
  = yield(:menu)

users.haml

- content_for :menu do
  %li Add User
  %li Change permissions

roles.haml

- 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM