我通常做以下设置:
- 创建部分
shared/_nav_menu.html.erb
内部分我把逻辑一样:
<% if current_user %>
// nav bar for logged in user
<% else %>
// nav bar for non logged in users
<% end %>
内。然后application.html.erb
文件I呈现partial
是这样的:
<%= render :partial => 'shared/_nav_menu' if show_menu? %>
里面我application_controller
我把逻辑是这样的:
def show_menu?
true
end
helper method: show_menu?
如果我不想显示菜单static_pages
然后里面static_pages_controller
我改写show_menu?
方法返回false
。
class StaticPagesController < ApplicationController
def show_menu?
false
end
helper_method: show_menu?
end
你不必原封不动地使用这个设置,但我喜欢这种设置,因为我nav menu
逻辑是在局部保持独立。所有nav menu
所需的逻辑都存在于此文件中。
这种方法不会使我的application.html.erb
文件膨胀,其中有很多if..else
。