在 haml 嵌套中使用 yield 出现意外错误

unexpected error using yield in haml nesting

服务器日志:

Processing by GamesController#index as HTML
  Rendered games/index.haml within layouts/games (0.1ms)
Completed 500 Internal Server Error in 6ms (ActiveRecord: 0.0ms)

截断布局为:

  %body
    = render partial: '/layouts/gamescreen/viewport'
      = yield

部分games.haml内容为单个Hamldiv:

  #viewport

产生的视图是:

  Hi!

产生的错误消息:

  /home/ubuntu/workspace/app/views/layouts/games.haml:12: syntax error, unexpected keyword_ensure, expecting end-of-input

我相信 answer for this question "Rails render partial with block" 有解决方案。

在您的布局中您会使用

= render layout: '/layouts/gamescreen/viewport' do 
  Hi!

在你的 layouts/gamescreen/viewport 部分中,你会

= yield