好吧,我正在尝试使用嵌套模板创建应用。我正在使用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
。堆栈跟踪是空白的,非常无益。有任何想法吗?这些已知的问题是什么?
答案 0 :(得分: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 一样使用
答案 1 :(得分:1)
content_for
块不应包含yield
。它们不会自己传递一个块,这是您的错误消息来源。