2014-03-19 55 views
0

我还是新的铁轨,我需要你的帮助。我有一个小门票系统。我想用我的不同标签在我的导航栏(引导程序3)中显示一个下拉菜单。这是我的票的索引。轨道动态下拉错误与application.html.erb

这里是我的application.html.erb

<li class="dropdown"> 
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Tags <b class="caret"> </b></a> 
    <ul class="dropdown-menu"> 
     <li> 
     <% @tickets.each do |ticket| %> 
     <% ticket.tags.each do |tag| %> 
     <%= link_to tag.name, tag_path(tag) %> 

但在没有其他网站的工作,当我上面的代码添加到我的导航栏的一部分。例如,当我想打开标签时,出现以下错误。 (当我删除上面的代码,一切都很好。)

未定义的方法`each'为零:NilClass 提取的源代码(第32行左右):app/views/layouts/application.html.erb其中第32行提出:

<a href="#" class="dropdown-toggle" data-toggle="dropdown">Tags <b class="caret"></b></a> 
     <ul class="dropdown-menu"> 
     <li> 
      <% @tickets.each do |ticket| %> 

你能帮我

回答

1

我不知道你为什么希望在应用程序布局水平(主布局)访问@tickets

如果您想要的话,您需要在ApplicationController中设置值@tickets。 您正在收到错误,因为它目前设置为零。

您可以更新ApplicationController进行如下设置:

class ApplicationController < ActionController::Base 
    before_action :set_tickets 

    private 
    def set_tickets 
    @tickets = Ticket.all ## Assuming that you want all tickets from model Ticket 
    end 

end 

@tickets= Ticket.all变化的查询按照您的要求。

+0

非常感谢! – user3382438

+0

很高兴帮助:) –