我很难过。我想在导航栏中使用实例变量来显示表格中的动态内容。
就文件结构而言,在我的视图中,我有一个/ layouts文件夹。在该文件夹中,通过 application.html.erb 文件中的<%= render 'layouts/header' %>
放置在视图中的导航栏有 _header.html.erb 。
现在这里变得粘稠了。在我的导航栏中,我有一组链接。我希望它将实例变量呈现为链接(它显示的文本,而不是路径),所以我写道:
<ul class="nav navbar-nav navbar-right">
<li><%= link_to "About", about_path %></li>
<li><%= link_to "Settings", edit_user_registration_path %></li>
<li><%= link_to "My Example", myexample_path %></li>
<li><%= link_to @example, stack_path %></li>
</ul>
我尝试用实例变量做两件事。
所以我需要定义@example = Stack.where(user_id: current_user.id).pluck(:points)
以返回我想要放在该导航栏中的数字。我已经尝试将该实例放在Application Controller 和中,方法是创建一个Layouts Controller并将其放在def index
中。
因此,我的问题是:要创建一个要由此 _layouts.html.erb 文件读取的实例变量,哪个控制器适合使用?
最后要注意的是,无论是将其添加到应用程序控制器还是布局控制器,它都不会呈现。如果我删除@example
实例并改为放置静态文本,则会将其添加到导航栏中。所以这似乎是我的问题。
答案 0 :(得分:2)
应用程序控制器中的
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_filter :add_header_text
def add_header_text
@menu = Menu.all
end
end
现在@menu实例变量在标题部分
中可用