Rails engine for static pages.
... but be careful. Danger!
Yeah, like "About us", "Directions", marketing pages, etc.
$ gem install high_voltage
Write your static pages and put them in the RAILS_ROOT/app/views/pages directory.
mkdir app/views/pages
touch app/views/pages/about.html.erb
After putting something interesting there, you can link to it from anywhere in your app with:
link_to "About", page_path("about")
Bam.
By default, the static page routes will be like /pages/:id (where :id is the view filename).
If you want to route to a static page in another location (for example, a homepage), do this:
map.root :controller => 'pages', :action => 'show', :id => 'home'
In that case, you'd need an app/views/pages/home.html.erb file.
Generally speaking, you need to route to the 'show' action with an :id param of the view filename.
You'll notice in your config/routes.rb file that the High Voltage routes are generated by:
HighVoltage::Routes.draw(map)
Most common reasons to override? Authentication, layouts.
Create a PagesController of your own:
script/generate controller pages
Then modify it to subclass from High Voltage, adding whatever you need:
class PagesController < HighVoltage::PagesController
before_filter :authenticate
layout "danger"
end
Just a suggestion, but you can test your pages using Shoulda pretty easily:
class PagesControllerTest < ActionController::TestCase
tests PagesController
%w(earn_money screencast about contact).each do |page|
context "on GET to /pages/#{page}" do
setup { get :show, :id => page }
should_respond_with :success
should_render_template page
end
end
end
If you're not using a custom PagesController be sure to test HighVoltage::PagesController
instead.
Enjoy!
Copyright (c) thoughtbot, inc -- released under the MIT license.