我怎样才能给Sinatra一个笼统的默认路线?

时间:2012-05-29 20:13:45

标签: ruby sinatra

对于小型开发人员文档应用程序,我想设置一个Sinatra应用程序来提供HAML文件。在CSS文件和图像的路由之后,我想要一条尝试为您请求的任何路径加载HAML文件的路由。

例如:

  • /index加载views/index.haml(如果存在)
  • /this/page/might/exist加载views/this/page/might/exist.haml(如果存在)

我如何指定此路线?

1 个答案:

答案 0 :(得分:19)

看起来会这样做:

get '/*' do
  viewname = params[:splat].first   # eg "some/path/here"

  if File.exist?("views/#{viewname}.haml")
    haml :"#{viewname}"

  else
    "Nopers, I can't find it."
  end
end