2011-09-09 33 views
0

以我用戶模型我有以下方法:未定義的方法`名」的零:NilClass導軌

def has_birthday_boards? 
    year = Date.new(Time.now.year).to_time 
    self.participants.where(:role => "Celebrant", :created_at => year..Time.now) 
    end 

以我控制器我有以下:

def celebrant_exists 
    @user = get_current_board.celebrant 
    @participant_boards = @user.has_birthday_boards? 

我認爲我有以下情況:

<% @participant_boards.each do |pb|%> 
     <%= pb.board.manager.name %> 
    <% end %> 

這將產生以下的錯誤:

undefined method `name' for nil:NilClass 

所以我看看,如果我有一個對象,我做

<% @participant_boards.each do |pb|%> 
     <%= pb.board.manager%> 
    <% end %> 

產地:

#<User:0x0000010645b800> #<User:0x00000106422708> 

如果我做到以下幾點:

@participant_boards.first.board.manager.name 

=> Benedict Dickens 

那麼,爲什麼我無法循環訪問數組並獲取這些值?

回答

1

大概有些董事會沒有經理。檢查:

<% @participant_boards.each_with_index do |pb, i|%> 
    <%= i %> 
    <%= pb.board.manager%> 
<% end %> 

也許你會看到一些數字,而不pb.board.manager

+0

非常感謝tjeden我準備把我的頭了。 – chell

相關問題