HAML动态部分动态到Sinatra应用程序中的布局

时间:2014-05-22 15:23:44

标签: ruby sinatra haml

我正在尝试使用HAML构建Sinatra应用程序并使用布局将我的网站分解为部分:

layout.haml

!!!
%html
    %head
        = partial :head
    %body
        = partial :header
        = partial :#{@template}
        = partial :footer

我的Sinatra应用程序正在调用layout.haml,如下所示:

get '/test' do      
    @template = "\"test/index\""

    haml :"layout"
end

尝试拉入:

views/
|----test/
    |----_index.haml

这给了我错误:

  

错误的参数数量(0表示1..2)

我也尝试重新定义了许多不同的组合但没有成功:

@template = ":\"test/index\""
= partial #{@template}

@template = "test/index"
= partial :#{@template}

注意:我正在使用Sinatra Partials

我是否完全以错误的方式解决这个问题?我的大脑真的很痛苦,试图找出如何将HAML用于DRY模板这样一个基本概念。

1 个答案:

答案 0 :(得分:2)

啊,事情如此简单..在this question的帮助下,我当然意识到现在一切都被layout.haml包裹着,我只需要放置适当的yield声明

<强> layout.haml

!!!
%html
    %head
        = partial :head
    %body
        = partial :header
        = yield
        = partial :footer

像往常一样调用模板:

get '/test' do    
    haml :"test/index"
end