RSpec – 无效的空格字符导致未定义的方法`should’?

在RubyMine和Atom中编写规范时,我偶尔会遇到一个非常烦人的错误,因为似乎存在无效的空格字符,因此ruby会将第一个(空白)字符作为方法名称的一部分进行评估。

1) Activity Failure/Error: it { should belong_to :micropost } NoMethodError: undefined method ` should' for # # ./spec/models/activity_spec.rb:5:in `block (2 levels) in ' 

请注意错误消息中' should'前面的空格。

我试过打开隐形字符,我看不到任何与普通空间不同的东西。

删除it块内的第一个空格并点击空格键可以解决问题,但是回过头来修复块一直很烦人。

有关导致错误的原因的任何想法?

添加

通过建议,我添加了在hex编辑器中打开的规范。 有问题的字节是C2 A0

 it { should belong_to :micropost } 

 69 74 20 7B C2 A0 73 68 6F 75 6C 64 20 62 65 6C 6F 6E 67 5F 74 6F 20 3A 6D 69 63 72 6F 70 6F 73 74 20 7D 

事实certificate,最可能的原因是我的胖胖手指击中了alt(选项) + 空格键 。 这也解释了为什么即使在我切换编辑器之后它也会发生。

我通过下载Karabiner并激活Non Breaking Space To Normal Space解决了这个问题。

Interesting Posts