Sinatra动态模板名称

时间:2013-11-04 00:33:51

标签: ruby routes sinatra haml

我刚开始查看sinatra的项目,我开始玩HAML。

然而,我遇到了一个问题 - 我有一个splat的路径需要指向一个HAML文件,其名称与从URL中喷出的文本相同,但是,任何字符串都传递给[haml]模板方法被视为内联模板,而不是文件名。

没有文件表明有办法做到这一点。我能想到的唯一解决方案是读取必要模板文件的全文并将其传递给HAML函数;然而,这样的解决方案非常麻烦。

实施例

get '/stpl/*.haml' do |page|
    haml page # <--- `page' is treated as an inline template
end

虽然在阅读文档时可以预期此功能,但似乎没有其他方法可以实现我的需要。

1 个答案:

答案 0 :(得分:4)

如果您将symbol传递给haml,它会在views中查找匹配的文件,因此您可以这样做:

get '/stpl/*.haml' do |page|
    haml page.to_sym # attempts to get views/<page>.haml
end