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

Nat*_*ong 12 ruby sinatra

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

例如:

  • /index加载views/index.haml,如果存在的话
  • /this/page/might/exist加载views/this/page/might/exist.haml,如果存在的话

我该如何指定这条路线?

Nat*_*ong 21

看起来会这样做:

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
Run Code Online (Sandbox Code Playgroud)