1

好的,我正在尝试使用嵌套模板创建应用程序。我正在使用 Rails 3 Beta 2 和 Haml。我已经四处寻找,我决定采用最清晰的方法并像这样构建我的模板:

# application.html.haml
!!!
%body
  %h1 Outermost Template
  = yield(:foobar)

# inner.html.haml
- content_for :foobar do
  %h2 Inner Template
  = yield

= render :file => 'layouts/application'

# foo_controller.rb
layout 'inner'

有了这一切,我得到了一条LocalJumpError消息no block given。堆栈跟踪是空白的,非常无用。有任何想法吗?这些是已知问题吗?

4

2 回答 2

4

给:

def inside_layout layout = 'application', &block
  render :inline => capture_haml(&block), :layout => "layouts/#{layout}"
end

试一试。像http://m.onkey.org/2009/7/7/nested-layouts一样使用

于 2010-06-02T23:41:17.887 回答
1

content_for块不应包含yield. 他们自己没有被传递一个块,这是您的错误消息的来源。

于 2010-04-12T17:05:25.440 回答