【问题标题】:Sinatra Sub-Directory ViewsSinatra 子目录视图
【发布时间】:2011-01-08 22:14:38
【问题描述】:

我希望能够从 ./views 的子目录(例如 ./views/admin)获取 Sinatra 视图。我知道你可以这样设置视图:

set :views, Proc.new { File.join(root, "templates") }

但是我怎么才能只为文件的一部分设置这个呢?

【问题讨论】:

    标签: ruby views sinatra


    【解决方案1】:

    这应该是一个过大的评论。 Alex 提供的答案是正确的,但可以肯定的是,这是来自official documentation 的引用:

    要记住的重要一点是,您始终必须使用符号引用模板,即使它们位于子目录中(在这种情况下,使用::'subdir/template''subdir/template'.to_sym)。您必须使用符号,否则渲染方法将直接渲染任何传递给它们的字符串。

    【讨论】:

      【解决方案2】:

      我不确定您到底在问什么,但您可以通过以下方式在 views/admin 中渲染视图:

      erb :"admin/report"
      

      如果您询问如何在调用 erb :report 时自动查看 views 的子目录,我不知道该怎么做,而且我认为您不想这样做(如果不同目录中的两个视图具有相同的名称?)。

      【讨论】:

      • 它有效,谢谢。不过,我必须去掉文件扩展名,它会自动添加。
      • 糟糕——好点子。我已从答案中的代码中删除了扩展名。
      猜你喜欢
      • 2013-01-04
      • 2021-10-31
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多