2015-04-14 10 views
15

Mam następujący kod w szynachJak mogę rozwiązać ten przykry syntastic error szynach

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

SyntasticCheck VIM podłączyć utrzymuje wyświetlania tego błędu

app/views/posty/new.html. erb [Składnia: wiersz: 12 (1)]
1 app/views/posts/new.html.erb | 12 warning | ewentualnie bezużyteczny użycie zmiennej w void kontekście

+2

Nie jestem pewien, czy można o tym wiele zrobić, zwłaszcza że jest to tylko ostrzeżenie informujące, że możesz nie używać "msg". Prawdopodobnie ma coś wspólnego z tym, jak analizuje bloki ruby ​​i różnicę między znacznikami '<%' i '<% ='. Szczerze mówiąc, oczekiwałbym tego, ponieważ '<%' nie wyrenderuje niczego co oznacza, że ​​w kontekście parsera jest bardzo możliwe, że ta linia jest bezużyteczna. Oczywiście nie jest to w tym przypadku użycia, ale mogę zrozumieć ostrzeżenie o tym, że jest ** możliwe **. – engineersmnky

+0

@engineersmnky tak, to chyba ma sens. Po prostu denerwujące działanie w pliku, gdy pojawia się ten błąd. Nawet jeśli zrobisz "lclose", zniknie, ale kiedy otworzysz inny plik i zwrócisz go, wyskoczy ponownie. – CodeCrack

+0

takie narzędzia mogą pomijać wybrane ostrzeżenia. w przeciwnym razie powinieneś załatać to narzędzie, ale będzie trudniejsze – beornborn

Odpowiedz

19

Jeśli wszystko chcesz nie jest zobaczyć te komunikaty jeszcze:

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

Ulepszenie: pod CentOS 5.8, nie ma "prawdopodobnie" na początku wiadomości. Jeśli komunikat nadal się pojawia, usuń pierwsze słowo z wyrażenia regularnego. –

+0

"Prawdopodobnie bezużyteczne użycie. * W pustym kontekście" pasuje do innych podobnych ostrzeżeń. –

+0

@lluis Następnie musisz użyć bardziej określonego wzorca. – lcd047

14

Jeśli istnieje posibility że ostrzeżenie pomoże w przyszłości, Najlepiej jest dodać .to_s do msg, dzięki czemu ostrzeżenie zniknie, ale nie będzie filtrować przyszłych ostrzeżeń.

Powiązane problemy