如何在Rails的通用應用程序佈局中添加特定於控制器的菜單(或div)?Rails:佈局中控制器特定的菜單
4
A
回答
4
方法1:設置一個變量在該控制器
class SomeController
before_filter :set_to_use_menu
private
def set_to_use_menu
@use_menu = true
end
end
方法2:確定控制器在佈局中的名稱
<%- if controller_name == "your_controller_name" %>
<%= render :partial => "the_menu" %>
<%- end %>
4
如果我已經正確理解了需要在佈局中特別放置的問題。
使用<%=收率(:)%>在佈局所需的位置,例如:
# application.html.erb
<%= yield(:right_menu) %>
# show.html.erb
<% content_for :right_menu do %>
<!-- Everything in this block will be shown at the position yield(:right_menu) in layout -->
<% end %>
其他位於 http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for
+2
謝謝,但這是控制器特定於操作,而不是控制器特定。我將不得不在控制器呈現的每個視圖中添加content_for – alste
1
除了content_for方法(可能或不可能是你想要的)之外,還有其他一些選項。
你可以使用的before_filter在你的控制器設置一個變量:
# Controller
class TestController < ApplicationController
before_filter :set_variable
def set_variable
@my_variable = true
end
end
# Layout
if @my_variable
# Do the controller-specific stuff you want to do
end
或者,你可以獨自離開控制器,只是檢查控制器名稱在佈局:
# Layout
if controller.controller_name == 'test'
# Do the controller-specific stuff you want to do
end
1
只需在您的佈局中調用適當命名的部分
<%= render :partial => "#{controller_name}_menu" %>
如果您的cont滾子是WidgetsController
,那麼這將使用部分_widgets_menu.html.erb
./app/views/layouts
相關問題
- 1. 定製joomla菜單佈局
- 2. 特定的CSS菜單佈局
- 3. 菜單按鈕控制隱形佈局
- 4. 指定某些控制器的佈局在Ruby on Rails的
- 5. 指定整個控制器的佈局
- 6. HAML和Rails3控制器特定的佈局不呈現
- 7. NavigationView中的菜單自定義佈局?
- 8. 在佈局中登錄表單:是否有與佈局有關的任何特定控制器部分?
- 9. Bootstrap中的菜單佈局
- 10. 指定控制器main.gsp佈局
- 11. Rails覆蓋gem中的控制器佈局
- 12. MVC控制器來佈局?
- 13. Silverlight菜單控件佈局問題
- 14. Rails 4和控制器特定資產
- 15. Rails RESTful控制器與查看特定控制器
- 16. 主菜單佈局
- 17. Rails - 如何使表單提交到特定的控制器
- 18. Rails 3.1:控制器變量在View佈局中可用
- 19. 更改特定寬度repsonsive設計的菜單佈局WordPress
- 20. Rails - 下拉菜單執行控制器中的操作?
- 21. 如何在grails中將特定控制器的佈局和視圖設置爲
- 22. 在控制器中使用佈局
- 23. 測試Rails所控制器選擇一個佈局,而不使佈局
- 24. kivy gui中的單獨佈局和控制器
- 25. 使特定的Rails視圖使用特定的佈局
- 26. 僅針對選定控制器的Rails控制器特定資產
- 27. Rails使用控制器的默認佈局
- 28. 副菜單控制器
- 29. 控制器菜單面板
- 30. 在綁定到控制器的佈局中動態添加html
@use_menu的用途是什麼,即它在哪裏使用? –
謝謝我想我會使用第一種方法的修改版本。 – alste
@michael:我相信PeterWong想要在佈局中使用@use_menu來調整菜單的渲染html – alste