Sinatra子目录视图

时间:2010-01-25 00:13:03

标签: ruby views sinatra

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

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

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

2 个答案:

答案 0 :(得分:61)

我不确定你要问的是什么,但你可以通过这样做在views/admin中呈现一个视图:

erb :"admin/report"

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

答案 1 :(得分:0)

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

  

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