我还是铁杆新手,我需要你的帮助。我有一个小票系统。我想用我的不同标签在导航栏(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| %>
你能帮帮我吗?
答案 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
根据您的要求更改查询。