├── 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 |
7 | Blog Title:
8 | Blog Body:
9 | 10 |
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 --------------------------------------------------------------------------------