原文URL:http://www.rubycc.com/bbs/topic_detail/86
1.基础代码app.rb
require 'rubygems' require 'sinatra/base' class App < Sinatra::Base get '/' do "Hello, World" end end
注: ruby版本小于1.9, 必须在第一行加 require 'rubygems'
看清楚第二行 require 'sinatra/base'
这是一种基于类的router定义方式。
2.URL 参数
下面的代码使用haml模板,安装方法:gem install haml
# encoding: utf-8 require 'rubygems' require 'sinatra/base' require 'haml' class App < Sinatra::Base enable :inline_templates get '/' do @title = "Top" haml "My Way" end get '/name/:name' do @name = params[:name] @title = "Song for #{@name}" haml "#{@name}'s Way" end end App.run! __END__ @@ layout !!! 5 %html %head %title= @title %body %h1= @title %div= yield
这是内联模板的一种用法。其中的代码: enable :inline_templates允许了内联模板的功能。
定义的@title,可以在模板中用“@title”的方式引用。
定义的router '/name/:name',可以用params[:name]获取URL中的参数。
log的功能可以追加。只要在刚才的“enable :inline_templates”下方追加一行即可。
enable :logging
后面的一连串功能,我小白,还不知道有什么用,所以先不写下去了