2015-04-14 19 views
15

Tôi có đoạn mã sau vào đường rayLàm thế nào để sửa chữa gây phiền nhiễu syntastic ray lỗi này

<% @post.errors.full_messages.each do |msg| %>                          
      <li><%= msg %></li>                                
<% end %> 

SyntasticCheck VIM cắm giữ hiển thị lỗi này

app/views/posts/new.html. erb [Cú pháp: dòng: 12 (1)]
1 ứng dụng/lượt xem/bài viết/new.html.erb | 12 cảnh báo | sử dụng có thể vô dụng của một biến trong khoảng trống bối cảnh

+2

Tôi không chắc chắn bạn có thể làm gì nhiều vì điều này chỉ đơn thuần là một cảnh báo cho bạn biết rằng bạn có thể không thực sự sử dụng 'msg'. Có lẽ có cái gì đó để làm với cách nó phân tích các khối ruby ​​và sự khác biệt giữa các thẻ '<%' và '<% ='. Thành thật mà nói tôi sẽ mong đợi điều này là '<%' sẽ không hiển thị bất cứ điều gì có nghĩa là trong ngữ cảnh của trình phân tích cú pháp, rất có thể dòng này là vô dụng. Rõ ràng nó không phải là trong trường hợp sử dụng này nhưng tôi có thể hiểu được cảnh báo về nó là ** có thể **. – engineersmnky

+0

@engineersmnky yea Tôi đoán điều đó có ý nghĩa. Chỉ là loại làm phiền trong một tập tin khi lỗi đó được hiển thị. Ngay cả khi bạn làm "lclose" nó sẽ biến mất nhưng khi bạn mở một tập tin khác và trả lại nó bật lên một lần nữa. – CodeCrack

+0

các công cụ như vậy có khả năng bỏ qua các cảnh báo đã chọn. nếu không bạn nên vá công cụ này, nhưng nó sẽ khó khăn hơn – beornborn

Trả lời

19

Nếu tất cả các bạn muốn không phải là để xem các thông báo lần nữa:

let g:syntastic_eruby_ruby_quiet_messages = 
    \ {'regex': 'possibly useless use of a variable in void context'} 
+0

Cải tiến: dưới CentOS 5.8, không có "có thể" ở đầu thư. Nếu thông báo vẫn xuất hiện, hãy xóa từ đầu tiên khỏi cụm từ thông dụng. –

+0

'có thể sử dụng vô dụng. * Trong ngữ cảnh void' khớp với các cảnh báo tương tự khác –

+0

@lluis Sau đó, bạn cần phải sử dụng một mẫu cụ thể hơn. – lcd047

14

Nếu có một posibility rằng cảnh báo sẽ giúp đỡ trong tương lai, điều tốt nhất cần làm là thêm .to_s vào msg để cảnh báo biến mất nhưng bạn không lọc cảnh báo trong tương lai.

Các vấn đề liên quan