Make svn repo: svn mkdir http://svn.ducknewmedia.com.au/public/getting_started -m "getting started with rails project" svn co http://svn.ducknewmedia.com.au/public/getting_started getting_started cd getting_started rails -c . svn ci -m "default rails project layout" Set your database config, the quickest way is to use sqlite3 Run the server (then open a new terminal for working with) ./script/server Visit http://localhost:3000 We want our own page instead of the "getting started" one. Delete index.html Refresh, you'll see a routing error In order to get something on the screen we'll need a controller First set up an integration test called read_blog. Integration tests are generally named after something a user does. ./script/generate integration read_blog Write a test method that checks for something you know you'll put in the title Generate a controller to handle viewing posts: ./script/generate controller posts Controllers have default routes that map to their names. To see this visit: /posts Ok it wants an index action. Create views/post/index.rhtml Put some html here, including the expected title in order to make the test pass Ok set the posts index to the default route Index should be a list of posts, there are no posts, we can create some but we need a model ./script/generate model post Add some fixtures You need a schema to store your data. Edit the migration. rake db:migrate rake db:test:prepare Now tell you test to load the fixtures, they're now loaded into the db for every test! Tests pass! check dev version - nothing there, need to load fixtures rake db:fixtures:load What good is a blog if you can't write any posts? Lets make a form! Lets try to post a post to the posts collection (fuck) You'll need to set up the POST /posts route