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