[sinatra] Sinatra再入门

原文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

后面的一连串功能,我小白,还不知道有什么用,所以先不写下去了



原文地址:https://www.cnblogs.com/lizunicon/p/3602047.html