我在主模板页面(首次登录)中加载菜单时遇到了一些麻烦。
在我的主模板中,我有:
<header class="headline">
<%= yield :nav %>
<div class="container">
我的菜单视图:
<% content_for :nav do %>
<nav id="top">
<a class="logo" href="/">WebsiteName</a>
<ul>
<% @menu.each do |m| %>
<li>
<a class="navTop" href="<%= m.link %>"><%= m.linkName %></a>
</li>
<% end %>
</ul>
</nav>
<% end %>
菜单控制器:
class MenuController < ApplicationController
def index
@menu = Menu.order("order_by ASC").all
end
end
页面呈现正确,但菜单为空白。如果我访问与菜单对应的网址,我可以看到数据。
我的问题:我会采用正确的方法吗?如何在所有页面中调用菜单控制器来加载数据?
提前致谢。
答案 0 :(得分:0)
您不会从另一个控制器或视图中调用一个控制器。如果您需要为所有控制器调用一些代码(例如设置此@menu数据),则需要添加
before_action :set_menu
def menu
@menu = Menu.order("order_by asc")
end
到应用程序控制器(.all在rails 4中是多余的。