├── views
├── blog_posts.erb
└── create_blog_post.erb
└── datamapper_test.rb
/views/blog_posts.erb:
--------------------------------------------------------------------------------
1 | <% for post in @posts %>
2 |
<%= post.title %>
3 | <%= post.body %>
4 | <% end %>
--------------------------------------------------------------------------------
/views/create_blog_post.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 | Blog Posts
4 |
5 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/datamapper_test.rb:
--------------------------------------------------------------------------------
1 | require 'sinatra'
2 | require 'DataMapper'
3 |
4 | DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/blog.db")
5 |
6 | class Post
7 | include DataMapper::Resource
8 | property :id, Serial
9 | property :title, String
10 | property :body, Text
11 | property :created_at, DateTime
12 | end
13 |
14 | DataMapper.finalize
15 |
16 | # automatically create the post table
17 | DataMapper.auto_upgrade!
18 |
19 | get '/create_blog_post' do
20 | erb :create_blog_post
21 | end
22 |
23 | post '/blog_post' do
24 | post = Post.create(
25 | :title => params[:blog_title],
26 | :body => params[:blog_body],
27 | :created_at => Time.now)
28 |
29 | redirect '/blog_posts'
30 | end
31 |
32 | get '/blog_posts' do
33 | @posts = Post.all(:order => [ :id.desc ], :limit => 20)
34 | @posts = [] if @posts == nil
35 |
36 | erb :blog_posts
37 | end
--------------------------------------------------------------------------------