Nesta CMS

A Ruby CMS. Built with Sinatra.

Customising the error pages

Because Nesta is written in Sinatra, errors (such as "404 not found")
are handled in just the same way that they are in Sinatra. Nesta ships
with simple messages to explain to your visitors that something went
wrong, but it never hurts to personalise your error page.

To change your error handler in Sinatra you define a Ruby block that
returns the HTML of your error page. For a 404 error (404 is the HTTP
code for page not found) you could write a handler as simple as this:

not_found do
'This is nowhere to be found.'
end

To set this up in Nesta you need to create an app.rb file in your
project, and add the not_found handler inside the Nesta::App class
(if you don't put it inside the App class Nesta won't find it):

module Nesta
class App
not_found do
'Text of error page'
end
end
end

The block simply returns a string containing your HTML, so if you want
to render a special template for it, you could put this in the
not_found block instead:

not_found do
haml(:my_error_page)
end

To get that last example working, create a views/my_error_page.haml
file in your project.

You can also change the HTML that Nesta returns when it encounters a
problem in your code (which results in the server sending HTTP error
code 500). To do so, define an error block instead: