11

私は HAML を使い始めており、最初のファイルの変換に取り組んでいます。表向きは正しい「-end」の省略:

- 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 で機能させるにはどうすればよいですか?

4

3 に答える 3

21

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 行のインデントがどのように変化したかに注目してください。

于 2009-07-28T03:32:17.757 に答える
1

haml ファイルの詳細については、vist を参照してください。

http://rubyonrails-tutor.blogspot.com/2010/02/hamltutorial-for-rails-developers.html

于 2010-02-24T12:06:14.947 に答える