2013-09-22 47 views
6

Tôi có một đoạn mã mà tôi đang cố chạy với rspec.Rails 4 - lỗi cú pháp, tIDENTIFIER không mong đợi, mong đợi kết thúc đầu vào

require 'spec_helper' 

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

     it { should respond_to(:name)} 
    end 

tôi nhận được lỗi sau

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' 

Bây giờ tôi gõ lại bài kiểm tra trong một tập tin mới và chạy đó và không có lỗi. Tôi đoán có một số vấn đề mã hóa hoặc một cái gì đó mà tôi chỉ chưa biết về điều đó tôi không nhận được. Có ai có thể làm sáng tỏ vấn đề này không?

+2

lỗi đến từ dòng 1 nơi bạn đang yêu cầu spec_helper, vì vậy bạn có thể chia sẻ mã spec_helper không? –

+0

Có khi lỗi nói "user_spec.rb: 1" ... tôi có viết lên câu hỏi này không chính xác không? Odd nó đã có -1. Chỉ cần tìm kiếm một số trợ giúp:/ –

+1

Vui lòng đọc lại nhận xét từ @SachinSingh :-) Bạn đang được yêu cầu đăng tệp 'spec_helper.rb' của bạn, vì đó có thể là nguồn (không có ý định chơi chữ) của sự cố. –

Trả lời

18

Bạn dường như đã bị cắn bởi "vấn đề không gian rộng 0". Đây là cực kỳ bực bội, tôi biết. Bạn sẽ nghĩ rằng "hiển thị không gian màu trắng" nên chăm sóc vấn đề, đặc biệt là trong một trình soạn thảo nâng cao như là tuyệt vời.

Trong mọi trường hợp, để phát hiện sự tồn tại của các ký tự này trong Sublime 2, bạn có thể sử dụng this plugin. để hiển thị chúng. Là một sang một bên, tôi lãng phí giờ nếu không ngày về vấn đề này một vài tháng trước khi tôi sao chép/dán một số mã từ một trang web mà đã có một trong những chút nasties trong đó.

Tôi đã tìm kiếm trang web cao cấp 2 cho bất kỳ bài đăng nào có liên quan đến điều này (ví dụ: yêu cầu tính năng, v.v.), nhưng không tìm thấy bất kỳ điều gì, vì vậy tôi không biết điều này có nằm trên radar của họ hay không.

Lưu ý: Phiên bản gốc của câu trả lời này giả định rằng ký tự khoảng trắng có độ rộng bằng không giống với không gian không phá vỡ mà không phải là không. Các khoảng trống không phá vỡ, trong khi chúng vẫn sẽ tạo ra các lỗi cú pháp, dễ phát hiện hơn vì chúng "chiếm không gian" trong màn hình của bạn (tức là "trông giống như" một không gian). Ngoài ra còn có "không gian rộng không phá vỡ", mà vẫn còn khác nhau. Mặc dù thật dễ dàng để nhập không gian không phá vỡ trên máy Mac (nghĩa là Option-Space), tôi biết không có cách nào để nhập bất kỳ không gian rộng bằng 0 nào.

+2

Cuộc sống tiết kiệm .... cảm ơn dude :) –

+0

Có! Tôi viết lại toàn bộ dòng và nó hoạt động! Rất nhiều cảm ơn rất nhiều! –