2016-11-08 150 views
-1

我是新来的Ruby,所以我恐怕这是一个愚蠢的问题,但我只是想不通,为什么我得到这个错误:红宝石神秘语法错误

init.rb: C:/Users/dmpk/Desktop/warranty-pro/lib/guide.rb:2: syntax error, unexpected end-of-input, expecting keyword_end (SyntaxError) 

这里是一个样本有问题的文件

require 'claim' 

class Guide 

    class Config 
    @@actions = ['add', 'list', 'find', 'quit'] 

    def self.actions 
     @@actions 
    end 
    end 

在上面的例子中第一行是第1行,最后一行是10行。 所以说,它期待在第2行“结束”了,我不明白为什么。

+3

你错过了'结束'。 –

回答

0

如果稍后有人遇到这个问题,我解决了这个问题。我所做的只是复制文件中的所有代码,删除文件,然后创建一个具有相同名称的新文件并粘贴所有代码。之后,它就可以工作了。所以......我真的不知道真正的问题是什么,但它现在已经修复了!

1

固定的格式和答案就清澈见底

require 'claim' 

class Guide 
    class Config 
     @@actions = ['add', 'list', 'find', 'quit'] 

     def self.actions 
     @@actions 
     end 
    end 

classdef需要有一个匹配的end。你错过了一个。

+0

嗯,这只是从我有的代码的乞讨中找到的一小段代码,通过Sublime中的所有内容查看,我可以看到Guide类的结尾,但它像80行下来。我不认为我应该在问题中发表太多的文字。我应该发布一切吗?另外,如果是Guide类缺少结束语,那么在代码的底部是不是会显示更深的错误,而不是靠近开头? – CCramer

+0

是的,通常我会希望行号是这种情况下的最后一行。如果你的代码真的很长,你可以上传像https://gist.github.com/或http://pastebin.com/ – Max

+0

像这样? https://gist.github.com/Cymricz/c406d01571524eecb61cb43274d0f7b6 – CCramer

1

我格式化了你的代码,看起来你错过了endGuide类。