我对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
我做错什么了吗?任何建议将不胜感激。
答案 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
的名称。