Hi Together I've got this code:
 @coursesFound = @user.available_courses
@courses = []
for course in @coursesFound do
  @courseInGroups = course.user_groups
  for group in @courseInGroups do
    @group = UserGroup.find group.id
    if @group.users.map { |u| u.id }.include? @user.id
      @courses << course
      break
    end
  end
end
# Wenn ein Kurs keiner Gruppe hinzugefügt wurde
if @courseInGroups.empty?
  @courses << course
end
on my debian vm it works fine but on my live system I got this error:
undefined method `empty?' for nil:NilClass
How can I avoid this?
Answer
If this @coursesFound = @user.available_courses returns an empty activerecord relation.
Then this won't execute
for course in @coursesFound do
  @courseInGroups = course.user_groups
  for group in @courseInGroups do
    @group = UserGroup.find group.id
    if @group.users.map { |u| u.id }.include? @user.id
      @courses << course
      break
    end
  end
end
Which means when you get here @courseInGroups is nil
if @courseInGroups.empty?
  @courses << course
end
So your quick fix would be
if @courseInGroups && @courseInGroups.empty?
  @courses << course
end
 
No comments:
Post a Comment