I'm having some issues with routing in Rails.
I already have a model in place for a Project
model, so I generated some default controllers and views using rails generate scaffold_controller
, e.g. rails generate scaffold_controller Project
. As expected, I now have a default controller and the associated views.
My routes.rb file contains:
resources :projects
When I try to load /projects/1 in the browser, I get a MissingTemplate error. Here's the dump from the rails server terminal:
Started GET "/projects/1/" for 127.0.0.1 at 2011-11-14 19:39:47 -0800
Project Load (0.3ms) SELECT `projects`.* FROM `projects` WHERE `projects`.`id` = 1 LIMIT 1
ActionView::MissingTemplate (Missing template projects/show, application/show with {:handlers=>[:erb, :builder], :formats=>[:html], :locale=>[:en, :en]}. Searched in:
):
app/controllers/projects_controller.rb:18:in `show'
These are scaffolded controllers/views, so there are already files in place for /app/views/projects/show.html.erb, etc. What am I doing wrong? I'm a bit of a rails noob so any tips are appreciated :)
Edit: contents of projects#show
# GET /projects/1
# GET /projects/1.json
def show
@project = Project.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @project }
end
end