nil:NilClass Rails 的未定义方法 'name'



在我的用户模型中,我有以下方法:

  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

相关内容

最新更新