【问题标题】:Sinatra dynamic template nameSinatra 动态模板名称
【发布时间】:2013-11-14 14:46:27
【问题描述】:

我刚开始为一个项目检查 sinatra,并开始使用 HAML。

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

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

例子

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

虽然人们在阅读文档时需要此功能,但似乎没有其他方法可以完成我所需要的。

【问题讨论】:

  • 我会从调用中删除 haml 后缀,因为它在应用程序内部。 Sinatra 最终会返回 html。

标签: ruby routes sinatra haml


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2010-12-10
    • 2019-02-02
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    相关资源
    最近更新 更多