您将变量传递到 Sinatra haml 部分,如下所示:
页面.haml
!!!
%html{:lang => 'eng'}
%body
= haml :'_header', :locals => {:title => "BOOM!"}
_header.haml
%head
%meta{:charset => 'utf-8'}
%title= locals[:title]
在页面标题的情况下,我只是在我的布局中做这样的事情顺便说一句:
布局.haml
%title= @title || 'hardcoded title default'
然后在路由中设置@title 的值(使用帮助器保持简短)。
但是,如果您的标题是部分的,那么您可以将这两个示例结合起来,例如:
布局.haml
!!!
%html{:lang => 'eng'}
%body
= haml :'_header', :locals => {:title => @title}
_header.haml
%head
%meta{:charset => 'utf-8'}
%title= locals[:title]
应用程序.rb
helpers do
def title(str = nil)
# helper for formatting your title string
if str
str + ' | Site'
else
'Site'
end
end
end
get '/somepage/:thing' do
# declare it in a route
@title = title(params[:thing])
end