有人可以解释为什么我在localhost:3000上收到此错误消息吗?

时间:2020-01-30 11:48:45

标签: ruby-on-rails ruby localhost

尝试加载时,我在localhost:3000上始终收到以下错误消息

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

1 个答案:

答案 0 :(得分:0)

欢迎来到stackoverflow。

请尝试从某人那里获取基本知识,以免您在这里被“欺负”(您可能在想),因为您的问题很基本,我知道每个人都从某个时候开始,但应该成为自我的一部分-思考而不是在此处发布。

如何诊断问题:

nil是“无”,在红宝石中放置在NilClass中,并且NilClass的大多数方法都不是StringInteger或{{ 1}}类。因此,如果错误消息说Array不是<<的方法,则意味着您在假设是数组的对象上使用了此运算符,但它是nil

现在,如果您看到第10行:nil出现此错误,并且正在@@cabins_available <<group[1]上使用运算符,该运算符应该是数组,但由于它是@cabins_available并且是{ {1}},因为您之前没有声明过,所以应该声明它。

请尽量不要复制其他人的代码,否则您将无所适从。尝试研究一些您认为已实施的东西,至少足以理解它们。

解决方案:

nil