2009-07-28 10 views
11

Pracuję z HAML i pracuję nad konwersją mojego pierwszego pliku. Pozornie prawidłowy pominięcie "- koniec":ERB vs HAML konwersja warunku if?

- if current_user 
= link_to 'Edit Profile', edit_user_path(current_user.id) 
= link_to 'Logout', logout_path 
- else 
= link_to 'Register', new_user_path 
= link_to 'Login', login_path 

dostaje mnie:

app/views/layouts/application.html.haml:28: syntax error, unexpected kENSURE, expecting kEND 
app/views/layouts/application.html.haml:30: syntax error, unexpected $end, expecting kEND 

Choć logiczny

- if current_user 
= link_to 'Edit Profile', edit_user_path(current_user.id) 
= link_to 'Logout', logout_path 
- else 
= link_to 'Register', new_user_path 
= link_to 'Login', login_path 
- end 

dostaje mnie:

You don't need to use "- end" in Haml. Use indentation instead: 
- if foo? 
    %strong Foo! 
- else 
    Not foo. 

Jak czy otrzymam tę kondycję? onal oświadczenie działa w HAML?

+2

masz odpowiedź na swoje pytanie .... Komunikat o błędzie mówi dokładnie, co robić. – nitecoder

Odpowiedz

21

HAML jest oparty na wcięciach, a parser może być trudny. Wymienić

- if current_user 
= link_to 'Edit Profile', edit_user_path(current_user.id) 
= link_to 'Logout', logout_path 
- else 
= link_to 'Register', new_user_path 
= link_to 'Login', login_path 

z

- if current_user 
    = link_to 'Edit Profile', edit_user_path(current_user.id) 
    = link_to 'Logout', logout_path 
- else 
    = link_to 'Register', new_user_path 
    = link_to 'Login', login_path 

i spróbować. Zwróć uwagę, jak zmieniło się wcięcie w liniach link_to.

+0

"Niespójne wcięcie: 5 spacji zostało użytych do wcięcia, ale reszta dokumentu została wcięta za pomocą 2 spacji." To się nie podobało. :( –

+1

Wciskasz w coś zbyt wiele spacji - lub zbyt mało.Możesz zamieścić cały szablon? –

+0

Spojrzałem jeszcze raz na odstępy i myślę, że masz rację.Myślę, że naprawiłem wcięcie, ale teraz otrzymuję to : /app/models/user_session.rb:5: błąd składni, nieoczekiwany '<' ^ /app/models/user_session.rb: 8: błąd składni, nieoczekiwany tIDENTIFIER, oczekiwanie $ end ^ Czego mi brakuje? –

3
- if current_user 
    = link_to 'Edit Profile', edit_user_path(current_user.id) 
    = link_to 'Logout', logout_path 
- else 
    = link_to 'Register', new_user_path 
    = link_to 'Login', login_path