gpt4 book ai didi

ruby-on-rails - 未定义方法 `empty?' 为 nil :NilClass how to avoid it

转载 作者:数据小太阳 更新时间:2023-10-29 07:22:26 24 4
gpt4 key购买 nike

大家好,我有这段代码:

 @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

在我的 debian 虚拟机上它工作正常但在我的实时系统上我得到了这个错误:

undefined method `empty?' for nil:NilClass

我怎样才能避免这种情况?

最佳答案

如果此 @coursesFound = @user.available_courses 返回一个空的 activerecord 关系。

那么这个就不会执行了

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

这意味着当你到达这里时 @courseInGroups 为 nil

if @courseInGroups.empty?
@courses << course
end

所以你的快速修复是

if @courseInGroups && @courseInGroups.empty?
@courses << course
end

关于ruby-on-rails - 未定义方法 `empty?' 为 nil :NilClass how to avoid it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31805574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com