It looks like you did all of these steps individually. You should try out the scaffold generator, which will build all of this for you.
Example:
>ruby script/generate scaffold question question:string answer:string votes:integer
exists app/models/
exists app/controllers/
exists app/helpers/
create app/views/questions
exists app/views/layouts/
exists test/functional/
exists test/unit/
exists public/stylesheets/
create app/views/questions/index.html.erb
create app/views/questions/show.html.erb
create app/views/questions/new.html.erb
create app/views/questions/edit.html.erb
create app/views/layouts/questions.html.erb
create public/stylesheets/scaffold.css
create app/controllers/questions_controller.rb
create test/functional/questions_controller_test.rb
create app/helpers/questions_helper.rb
route map.resources :questions
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/question.rb
create test/unit/question_test.rb
create test/fixtures/questions.yml
create db/migrate
create db/migrate/20081201150131_create_questions.rb
So as you can see, with a scaffold we get our model, our controller, our views, our route, a database migration that will build a Questions table with two fields, and RESTful controller actions to immediately add/update/view/delete any question data. Oh, and most importantly, an empty set of test files ready for your tests to be written :).