The simplest way to create a new rails page (with the an action controller) is to use the generate command:

$ script/generate controller Pages home contact

This automatically updates the config/routes.rb table and creates the corresponding controllers and views as follows:

app/controllers/pages_controller.rb
app/views/pages/home.html.erb
app/views/pages/contact.html.erb

Which you can then view and edit at:

http://localhost:3000/pages/home
http://localhost:3000/pages/contact

To add a new page to the same controller (i.e. an about page)

http://localhost:3000/pages/about

you need to do three things:

1. Create an ‘action’ in your controller

app/controllers/pages_controller.rb

class PagesController < ApplicationController
   def home
   end

   def contact
   end

   def about
   end
end

2. Update the route table:

config/routes.rb

SampleApp::Application.routes.draw do
   get "pages/home"
   get "pages/contact"
   get "pages/about"
end

Actually you may not need to do this. For 2.3.5 (my current version) the routes.rb class had:

ActionController::Routing::Routes.draw do |map|
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end

which is good enough to automatically route generic views to the appropriate controller and action.

3. Stub out your new ‘view’

app/views/pages/about.html.erb

<h1>Pages#about</h1>
<p>Find me in app/views/pages/about.html.erb</p>

And with that you are done! You should not have a new page ready to be edited at:

http://localhost:3000/pages/about