My index.html
page for my project needs some Ruby code so I need to change it to a .erb
extension. How do I configure Rails to identify the index.html.erb
file as the starting page of the project instead of the index.html
file?
Asked
Active
Viewed 5,706 times
3

parlia
- 37
- 1
- 4
4 Answers
6
You need to configure the map.root
path in your config/routes.rb
file.
map.root :controller => "blogs"
# This would recognize http://www.example.com/ as
params = { :controller => 'blogs', :action => 'index' }
# and provide these named routes
root_url # => 'http://www.example.com/'
root_path # => ''
http://api.rubyonrails.org/classes/ActionController/Routing.html

Barry Gallagher
- 6,156
- 4
- 26
- 30
-
Thanks. So this would require the index.html.erb page to exist in the views folder associated with a particular controller - I have to move it out of the public folder where my current index.html file is? – parlia Jul 03 '09 at 20:47
-
1Yup. I should have mentioned that you must delete the default index.html file out of your public folder before the change I listed above will take effect :) – Barry Gallagher Jul 03 '09 at 20:56
2
public/index.html is a flat file, and doesn't go through any templating (everything in /public/ is like this.)
If you want templating on your index page, you need to run the request through a controller and a view. You can map the root URL of your application to a controller with map.root:
map.root :controller => 'home'

Michael Sofaer
- 2,927
- 24
- 18
1
Or you could do root to:
config/routes.rb
root to: 'index.html.erb'
Be sure to delete index.html file

sherodtaylor
- 13
- 5
0
The answers here are now outdated. Assuming the index.html.erb
file is under a controller and a view called patients.
In rails 3 you would do it like this:
match "/" => "patients#index"

joscas
- 7,474
- 5
- 39
- 59