我想将模板文件放在不同的目录中。 (foo/, bar/)
你如何使用 Sinatra 编写代码?
这样会出错。
最佳答案
来自documentation :
set :views, Proc.new { File.join(root, "templates") }
如果你想使用多个目录(也来自文档):
set :views, ['views', 'templates']
helpers do
def find_template(views, name, engine, &block)
Array(views).each { |v| super(v, name, engine, &block) }
end
end
顺便说一句,您需要使用符号而不是字符串来引用模板。所以完整的代码是:
require 'rubygems'
require 'sinatra'
require 'haml'
set :views, ['foo', 'bar']
helpers do
def find_template(views, name, engine, &block)
Array(views).each { |v| super(v, name, engine, &block) }
end
end
get '/' do
haml :index, :layout => :bar
end
你有这些文件:
foo/index.haml
bar/bar.haml
关于ruby - 如何使用 Sinatra 从不同的目录渲染模板和布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11118871/