在部分Rails中使用动态实例变量4

时间:2016-04-12 04:09:06

标签: ruby-on-rails

我很难过。我想在导航栏中使用实例变量来显示表格中的动态内容。

就文件结构而言,在我的视图中,我有一个/ 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实例并改为放置静态文本,则会将其添加到导航栏中。所以这似乎是我的问题。

1 个答案:

答案 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实例变量在标题部分

中可用