有人可以解释为什么我在 localhost:3000 上收到此错误消息吗?
Can someone explain why I get this error message on localhost:3000?
尝试加载
时,我在 localhost:3000 上不断收到以下错误消息
undefined method `<<' for nil:NilClass
提取的源代码(大约第 10 行):
8个
9
10
11
12
13
@cabins =Cabin.group(:ship_id).count
@cabins.each do |group|
@cabins_available <<group[1]
@cabins_available <<group[1]
end
puts @cabins_available
这是代码
class TravelagentController < ApplicationController
def index
@cruises = Cruise.all
@cruise_names = []
@cruises.each do |cruise|
@cruise_names <<cruise.name
end
@cabins =Cabin.group(:ship_id).count
@cabins.each do |group|
@cabins_available <<group[1]
@cabins_available <<group[1]
end
puts @cabins_available
puts @cruise_names
end
end
欢迎使用 Whosebug。
请尝试从某人那里了解基础知识,这样您就不会 "bullied"(正如您可能想的那样),因为您的问题非常基础,我知道每个人都从某个时候开始,但应该是自己思考的一部分就不发在这里了
您应该如何诊断问题:
nil
是"nothing"而在ruby中是放在NilClass
中而NilClass
没有String
的大部分方法或者Integer
或 Array
类。因此,如果错误消息显示 <<
不是 nil
的方法,那么这意味着您将此运算符用于您假设为数组的对象,但它是 nil
.
现在,如果您看到第 10 行:@@cabins_available <<group[1]
出现此错误并且运算符正在 @cabins_available
上使用,它应该是一个数组,但因为它是 nil
并且它是nil
因为你之前没有声明,所以你应该声明。
请尽量不要只抄袭别人的代码,否则你将对每一步都一无所知。尝试研究事物,你看到实施,至少足以理解它们。
解法:
class TravelagentController < ApplicationController
def index
@cruises = Cruise.all
@cruise_names = []
@cabins_available = []
@cruises.each do |cruise|
@cruise_names <<cruise.name
end
@cabins =Cabin.group(:ship_id).count
@cabins.each do |group|
@cabins_available <<group[1]
@cabins_available <<group[1]
end
puts @cabins_available
puts @cruise_names
end
end
尝试加载
时,我在 localhost:3000 上不断收到以下错误消息undefined method `<<' for nil:NilClass
提取的源代码(大约第 10 行): 8个 9 10 11 12 13
@cabins =Cabin.group(:ship_id).count
@cabins.each do |group|
@cabins_available <<group[1]
@cabins_available <<group[1]
end
puts @cabins_available
这是代码
class TravelagentController < ApplicationController
def index
@cruises = Cruise.all
@cruise_names = []
@cruises.each do |cruise|
@cruise_names <<cruise.name
end
@cabins =Cabin.group(:ship_id).count
@cabins.each do |group|
@cabins_available <<group[1]
@cabins_available <<group[1]
end
puts @cabins_available
puts @cruise_names
end
end
欢迎使用 Whosebug。
请尝试从某人那里了解基础知识,这样您就不会 "bullied"(正如您可能想的那样),因为您的问题非常基础,我知道每个人都从某个时候开始,但应该是自己思考的一部分就不发在这里了
您应该如何诊断问题:
nil
是"nothing"而在ruby中是放在NilClass
中而NilClass
没有String
的大部分方法或者Integer
或 Array
类。因此,如果错误消息显示 <<
不是 nil
的方法,那么这意味着您将此运算符用于您假设为数组的对象,但它是 nil
.
现在,如果您看到第 10 行:@@cabins_available <<group[1]
出现此错误并且运算符正在 @cabins_available
上使用,它应该是一个数组,但因为它是 nil
并且它是nil
因为你之前没有声明,所以你应该声明。
请尽量不要只抄袭别人的代码,否则你将对每一步都一无所知。尝试研究事物,你看到实施,至少足以理解它们。
解法:
class TravelagentController < ApplicationController
def index
@cruises = Cruise.all
@cruise_names = []
@cabins_available = []
@cruises.each do |cruise|
@cruise_names <<cruise.name
end
@cabins =Cabin.group(:ship_id).count
@cabins.each do |group|
@cabins_available <<group[1]
@cabins_available <<group[1]
end
puts @cabins_available
puts @cruise_names
end
end