Ruby if语句中的异常

Ruby if语句中的异常,ruby,if-statement,for-loop,each,Ruby,If Statement,For Loop,Each,我用ruby为一个类编写了一个搜索函数,该类在一个人员列表(名为@personList)上进行迭代。 它面临一个例外 我的代码‌ : def search (nCode) for x in @personList if x.nCode == nCode x.to_s end end 我使用每个编写了相同的代码,它也面临相同的异常。 我的代码怎么了? (我是Ruby新手!我无法解决这个问题)如果由一对新行分隔,则此: x.to_s if

我用ruby为一个类编写了一个搜索函数,该类在一个人员列表(名为@personList)上进行迭代。 它面临一个例外

我的代码‌ :

def search (nCode)
    for x in @personList
        if x.nCode == nCode 
            x.to_s
    end
end
我使用每个编写了相同的代码,它也面临相同的异常。 我的代码怎么了?
(我是Ruby新手!我无法解决这个问题)

如果由一对新行分隔,则此

x.to_s if x.nCode == nCode 
如果
需要明确的结束,则此

if x.nCode == nCode 
    x.to_s
end

您在第一个示例中打开了三个块(
def
for..in
if
),但只关闭了两个。如果
是未关闭的缩进,则缩进表示
。因此,您有一个语法错误。否则,两个示例在功能上是相同的。

Ruby
if
需要一个
end
来完成它。如果您使用end作为异常代码,它将正常工作

if x.nCode == nCode 
    x.to_s
end
对于第二种情况,不管您是否成功,它实际上是在一行中完成条件和执行。这就是为什么它不需要任何
结束
,而且它对您有效


您将从中找到有关
的更多详细信息。

请添加@personList包含的内容。并提供异常的具体详细信息。