【发布时间】:2011-01-08 22:14:38
【问题描述】:
我希望能够从 ./views 的子目录(例如 ./views/admin)获取 Sinatra 视图。我知道你可以这样设置视图:
set :views, Proc.new { File.join(root, "templates") }
但是我怎么才能只为文件的一部分设置这个呢?
【问题讨论】:
我希望能够从 ./views 的子目录(例如 ./views/admin)获取 Sinatra 视图。我知道你可以这样设置视图:
set :views, Proc.new { File.join(root, "templates") }
但是我怎么才能只为文件的一部分设置这个呢?
【问题讨论】:
这应该是一个过大的评论。 Alex 提供的答案是正确的,但可以肯定的是,这是来自official documentation 的引用:
要记住的重要一点是,您始终必须使用符号引用模板,即使它们位于子目录中(在这种情况下,使用:
:'subdir/template'或'subdir/template'.to_sym)。您必须使用符号,否则渲染方法将直接渲染任何传递给它们的字符串。
【讨论】:
我不确定您到底在问什么,但您可以通过以下方式在 views/admin 中渲染视图:
erb :"admin/report"
如果您询问如何在调用 erb :report 时自动查看 views 的子目录,我不知道该怎么做,而且我认为您不想这样做(如果不同目录中的两个视图具有相同的名称?)。
【讨论】: