在 Sinatra ruby 框架中,我有一个这样的路由:
get '/portfolio/:item' do
haml params[:item].to_sym
end
如果模板存在(例如,如果我点击 /portfolio/website
,并且我有一个名为 /views/website.haml
的模板),这会很好用,但是如果我尝试一个没有模板的 URL,比如 example.com/portfolio/notemplate
,我会得到这个错误:
Errno::ENOENT at /portfolio/notemplate
No such file or directory - /.../views/notemplate.haml
如何测试和捕获模板是否存在?我在 Sinatra 文档中找不到“如果模板存在”方法。
最佳答案
不确定是否有特定于 Sinatra 的方法来执行此操作,但您始终可以捕获 Errno::ENOENT 异常,如下所示:
get '/portfolio/:item' do
begin
haml params[:item].to_sym
rescue Errno::ENOENT
haml :default
end
end
关于ruby - 如何检查 Sinatra 中是否存在模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1600473/