Отсутствует keyword_end при частичной обработке шаблона haml - PullRequest
9 голосов
/ 19 октября 2010

Поскольку меня раздражали теги HTML, я начал преобразовывать свой проект в HAML, поскольку он намного лучше структурирован. Я рад, что установка предоставляет инструмент html2haml, который поможет мне с этим.

Хотя синтаксически правильная обработка файла вызывает у меня странную ошибку, которую я не совсем понимаю:

/stories/_story.html.haml:28: syntax error, unexpected keyword_ensure, expecting keyword_end
...:Util.html_safe(_erbout);ensure;@haml_buffer = @haml_buffer....
...                               ^
/stories/_story.html.haml:31: syntax error, unexpected $end, expecting keyword_end

Мой хамл-источник содержит только 27 строк, и, поскольку я очень новичок в этом, я понятия не имею, где это не так ... вот код:

%h1= story.title
%center
  %i
    by #{link_to story.user.name, story.user}
#story-short= story.short_desc
- if logged_in? and @current_user.id == story.user_id
  .list-buttons
    %center
      = link_to 'Edit', edit_story_path(story)
      |
      \#{link_to 'Delete', story, :method => 'delete', :confirm => 'Are you really sure?'}
#story-body
  - story.body.split("\n").each do |line|
  - if line.strip.empty?
    %hr/
  - else
    %p= line.strip
#comments
  %p{:onclick => "$('#comments').find('dl').slideToggle();"} Comments to this story (click to expand)
  %dl
    = render :partial => 'comment', :collection => @story.comments
    - if logged_in? and @current_user.id != story.user_id
      %dt Leave a comment:
      %dd
        = form_for [story, story.comments.build] do |f|
          .field= f.text_area :body
          .actions= f.submit "Comment!"

Так что да, мне бы очень хотелось узнать, где это не так. Проверял несколько раз, может быть, ошибка?

Спасибо за ваше время.

1 Ответ

10 голосов
/ 20 октября 2010

Строки под - story.body.split("\n").each do |line| не имеют отступов.Это означает, что Хамл не знает, как автоматически добавить end для блока, что вызывает указанную ошибку.

...