在我的用户模型中,我有以下方法:
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
那么为什么我不能循环数组并获得这些值呢?
可能有些董事会没有经理。检查:
<% @participant_boards.each_with_index do |pb, i|%>
<%= i %>
<%= pb.board.manager%>
<% end %>
可能你会看到一些数字没有pb.board.manager