6

我有一段代码正在尝试使用 rspec 运行。

require 'spec_helper'

    describe "User" do
        before { @user = User.new(name: "Example User", email: "user@example.com", password: "foobar", password_confirmation: "foobar") }
        subject { @user }

        it { should respond_to(:name)}
    end

我收到以下错误

c:\Sites\sample_app>rspec spec/models/user_spec.rb
C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec
/core/configuration.rb:819:in `load': c:/Sites/sample_app/spec/models/user_spec.
rb:1: syntax error, unexpected tIDENTIFIER, expecting end-of-input (SyntaxError)
before { @user...er'

现在我在一个新文件中重新输入测试并运行它并且没有错误。我想有一些编码问题或一些我没有了解的东西,我没有得到。有没有人可以阐明这个问题?

4

1 回答 1

19

您似乎确实被“零宽度空间问题”所困扰。我知道,这非常令人沮丧。你会认为“显示空白”应该解决这个问题,尤其是在像 Sublime 这样高级的编辑器中。

无论如何,要检测 Sublime 2 中这些字符的存在,你可以使用这个插件。显示它们。

顺便说一句,几个月前我在这个问题上浪费了数小时甚至数天,当时我从一个网站上复制/粘贴了一些代码,该网站中有一个小问题。

我在 Sublime 2 网站上搜索了与此相关的任何帖子(例如功能请求等),但没有找到任何东西,所以我不知道这是否在他们的雷达上。

注意:此答案的原始版本假定零宽度空格字符与不间断空格相同,但事实并非如此。不间断空格虽然仍会产生语法错误,但更容易检测到,因为它们在您的显示中“占用空间”(即“看起来像”一个空格)。还有“零宽度不间断空间”,这仍然不同。虽然在 Mac 上输入不间断空格(即 Option-Space)很容易,但我不知道如何输入任何零宽度空格。

于 2013-09-22T19:01:16.427 回答