Sinatra 101 (2)快速构建一个Note系统
Views
Sinatra中,默认所有的页面都放在views目录下,而且其支持多个html模板系统,比方说,haml,erb等等。这儿以Haml为例,其他的模板系统使用方法类似。 Haml可以帮助我们更有效的编写HTML文件。在Sinatra,使用haml非常方便,只需要在文件头引入haml即可:
Layout,CSS
对于同一个系统,多个页面的布局大多数情况都是一样的,为了更好的重用代码,Sinatra支持Layout, 即你只需要返回自己修改的内容部分,页面的布局可以指定一个模板,默认情况下,sinatra会默认选择名为layout.haml的文件作为模板。 首先,创建一个layout.haml, 然后把模板代码移动到该文件中, 同时,使用“”=yield“”,指定自己修改部分的位置:
这样,就可以移除index.haml代码中的多余部分,index.haml就只剩下一行代码“Welcome to Note”。
如果你不想使用默认的模板名字,或者想在系统中支持多套模板,Sinatra支持自己指定layout, 用法如下:
Database
在Rails的世界,你只能选择ActiveRecord来做ORM,在Sinatra中,你除了可以继续使用ActiveRecord以外,你还有其他的选项,比如备受推崇的Data_Mapper.为了简单起见,本例程中使用了Data_mapper + Sqlite3来做数据库服务。首先,安装data_mapper和其对于sqlite3的适配器:
RESTFUL与CRUD操作
在现代软件开发中,对于Web服务的接口,大部分的程序员都已经倾向于选择RESTFUL形式的接口,Sinatra对此提供了完美的支持。在Sinatra完美的支持了HTTP的POST,GET,PUT,DELETE,其对应的对象操作就是Create,Read,Update和Delete。本例中就是按照这样的风格实现的web interface。
* 使用POST方法创建Note
Update页面:
Delete页面:
源代码地址:http://cdpsecurecdp.github.com/xianlinbox/Note

