Rail Quickstart Guide: Always receiving "template missing" errors

Hello,

Upon going through the rails quickstart guide:
Getting Started with Rails — Ruby on Rails Guides & also this guide
here:
http://fuelyourcoding.com/creating-your-first-ruby-on-rails-application-from-scratch/

  • I always get “Missing Template” errors.

Specifically:
“Template is missing
Missing template posts/index.erb in view path app/views”

Currently the file index.html.erb lives in app/views/posts/ - why is
the error message looking for a .erb file when there is a .html.erb
file in the folder that was created by a scaffold command? Renaming
the file to .erb does not solve the problem.

Here’s my setup info from localhost:3000
Ruby version 1.8.7 (universal-darwin10.0)
RubyGems version 1.3.6
Rack version 1.0
Rails version 2.3.5
Active Record version 2.3.5
Active Resource version 2.3.5
Action Mailer version 2.3.5
Active Support version 2.3.5
Application root /Users/vtgbeats/[ Projects ]/[ Rails Apps ]/slambook
Environment development
Database adapter sqlite3
Database schema version 20100318235949

The routes.rb file is in default state.

I’ve successfully created small RORs apps before and now I can’t even
render a view, please help. Thanks everyone,
Stone

Are you sure you don’t have a typo, and name of your template looks
exactly like that “app/views/posts/index.html.erb” ?
if it’s not could you provide here your posts controller, routs and
index view

Thanks for your time. I’m almost sure there is no typo on my part. I’m
actually starting to think there’s something wrong with the
environment as I have created small ror apps before without any issues
and am somewhat experiences w/ rails. Having gone through the rails
quickstart guide again, I have the same issue w/ home controller.

home_controller.rb ------
class HomeController < ApplicationController
def index
end
end

routes.rb ---------
ActionController::Routing::Routes.draw do |map|

The priority is based upon order of creation: first created ->

highest priority.
map.connect ‘home/index’, :controller => ‘home’, :action => ‘index’

Sample of regular route:

map.connect ‘products/:id’, :controller => ‘catalog’, :action =>

‘view’

Keep in mind you can assign values other than :controller

and :action

Sample of named route:

map.purchase ‘products/:id/purchase’, :controller =>

‘catalog’, :action => ‘purchase’

This route can be invoked with purchase_url(:id => product.id)

Sample resource route (maps HTTP verbs to controller actions

automatically):

map.resources :products

Sample resource route with options:

map.resources :products, :member => { :short => :get, :toggle

=> :post }, :collection => { :sold => :get }

Sample resource route with sub-resources:

map.resources :products, :has_many =>

[ :comments, :sales ], :has_one => :seller

Sample resource route with more complex sub-resources

map.resources :products do |products|

products.resources :comments

products.resources :sales, :collection => { :recent => :get }

end

Sample resource route within a namespace:

map.namespace :admin do |admin|

# Directs /admin/products/* to Admin::ProductsController (app/

controllers/admin/products_controller.rb)

admin.resources :products

end

You can have the root of your site routed with map.root – just

remember to delete public/index.html.

map.root :controller => “welcome”

See how all your routes lay out with “rake routes”

Install the default routes as the lowest priority.

Note: These default routes make all actions in every controller

accessible via GET requests. You should

consider removing or commenting them out if you’re using named

routes and resources.
map.root :controller => “home”
end

index.html.erb ---------

Home#index

Find me in app/views/home/index.html.erb

Again, I am following the rails quickstart guide for 2.3 verbatim and
still receiving this error:
“Processing HomeController#index (for 127.0.0.1 at 2010-03-19
15:42:14) [GET]
ActionView::MissingTemplate (Missing template home/index.erb in view
path app/views):
Rendering rescues/layout (internal_server_error)”

Any help greatly appreciated!!!
Thanks,
Stone

If you read carefully Getting Started with Rails — Ruby on Rails Guides
you can find
that in your routes.rb file have to be following lines
map.connect ‘:controller/:action/:id’
map.connect ‘:controller/:action/:id.:format’

I also new in RoR and I don’t know why you wrote "map.connect ‘home/
index’, :controller => ‘home’, :action => ‘index’ "
in your routes.rb. and what it should be mean.
We both need to read more about routes in RoR.