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:
error do
haml(:somethings_broken)
end
More info on Sinatra's handlers can be found in the Sinatra README.