无法在轨道视图中显示连接表

时间:2016-09-08 09:14:19

标签: ruby-on-rails model

我对ror很新,并尝试过其他几个类似的帖子,但我仍然收到错误。 我有这个型号:

func sen(){
        var rootRef: FIRDatabaseReference!
        var refHandle: UInt!
        var haneRef: FIRDatabaseReference!
        var numbersArray = [Int] ()



        rootRef = FIRDatabase.database().reference()
        haneRef = rootRef.child("SES2014")

        let queryCount = 4
        haneRef.queryOrderedByChild("lg_Et harcaması").queryLimitedToLast(queryCount).observeEventType(.ChildAdded, withBlock: { (snapshot) in
            let hhtype = snapshot.value!["HHtype"] as? Int
            numbersArray.append(hhtype!)
            queryCount -= 1
            if queryCount <= 0 {
                print(numbersArray)
            }



        })

    }

在Ticket索引控制器中,我有:

class Ticket < ActiveRecord::Base 
   belongs_to :user
   has_and_belongs_to_many :categories
   has_many :ticket_categories
   has_many :categories, through: :ticket_categories
end

class TicketCategory < ActiveRecord::Base
   belongs_to :ticket
   belongs_to :category
end

class Category < ActiveRecord::Base
   has_many :ticket_categories
   has_many :tickets, through: :ticket_categories
end

在我有的视图中:

def index
    @tickets = Ticket.paginate(page: params[:page], per_page: 10)
    @category = Category.paginate(page: params[:page], per_page: 10)
end

在视图中,我得到了这个错误未定义的方法`类别&#39;为零:NilClass
我做错什么了吗?任何建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

应该是:

<ul>
  <% if ticket.categories.any? %>
    <%= ticket.categories %>
    <li><%= category.name %></li>
  <% end %>
</ul>

答案 1 :(得分:1)

您使用变量@tickets循环ticket。因此,您应该在categories而不是ticket@ticket)上调用nil方法。

<% if ticket.categories.any? %>
  <% ticket.categories.each do |category| %>
    <li><%= category.name %></li>
  <% end %>
<% end %>

我已添加代码以循环显示categories并显示每个category的名称。