application.html.erb导致rails动态下拉列表错误

时间:2014-03-19 15:22:00

标签: ruby-on-rails twitter-bootstrap

我还是铁杆新手,我需要你的帮助。我有一个小票系统。我想用我的不同标签在导航栏(bootstrap 3)中显示一个下拉菜单。这适用于我的门票索引。

以下是我的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) %> 
  

但是当我将上述代码添加到导航栏时,没有其他网站正常工作。例如,当我想打开标签时,我收到以下错误。 (当我删除上面的代码时,一切都很好。

未定义的方法`每个&#39;为零: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 个答案:

答案 0 :(得分:1)

我不确定您为什么要在应用程序布局级别(主布局)访问@tickets

如果您愿意,则需要在@tickets中设置ApplicationController的值。 您将收到错误,因为它当前设置为nil。

您可以按照以下方式更新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根据您的要求更改查询。