ERB против преобразования HAML условия if?
Я начинаю работу с HAML и работаю над преобразованием своего первого файла.
Предположительно правильное упущение "конца":
- 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
получает меня:
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
В то время как логический
- 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
получает меня:
You don't need to use "- end" in Haml. Use indentation instead:
- if foo?
%strong Foo!
- else
Not foo.
Как получить этот условный оператор, работающий в HAML?
Ответы
Ответ 1
HAML основан на отступе, и синтаксический анализатор может быть сложным. Заменить
- 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
с
- 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
и попробуйте. Обратите внимание на то, как отступ изменялся в линиях link_to.
Ответ 2
- 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
Ответ 3
для получения дополнительной информации о файлах haml vist
http://rubyonrails-tutor.blogspot.com/2010/02/hamltutorial-for-rails-developers.html