Fel*_*lix 4 ruby ruby-on-rails ruby-on-rails-4
大家好我有这个代码:
@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
Run Code Online (Sandbox Code Playgroud)
在我的debian vm它工作正常但在我的实时系统上我得到了这个错误:
undefined method `empty?' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
我怎么能避免这个?
如果@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
Run Code Online (Sandbox Code Playgroud)
这意味着当你到达这里@courseInGroups是零
if @courseInGroups.empty?
@courses << course
end
Run Code Online (Sandbox Code Playgroud)
所以你的快速解决方案就是
if @courseInGroups && @courseInGroups.empty?
@courses << course
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12553 次 |
| 最近记录: |