Sometimes we don't want a request to continue executing; maybe an error has occurred or perhaps an operation is taking too long and we would like to abort the execution of the request. Amber provides a
halt! method to controllers.
When you want a request to cease and return a particular message rather then rendering a page, you use Amber
halt! to stop the request from continue execution.
class UserController < ApplicationControllerdef indexhalt!(403, "Forbidden") if params[:user_id].nil?render "index.slang"endend
A status code of
403 was returned, and the content in
render will not be delivered to the client.
The next time you’re building an Amber application, consider using halt to simplify error handling.
Unlike other frameworks Amber
redirect_to stops the current execution of the request and performs the redirection at that given time.
For example, in other frameworks you will have to do something similar to:
class UserController < ApplicationControllerdef indexif some_conditionif some_conditionredirect_to(path_one) and return# Or another approachreturn redirect_to(path_one)endendendend
As you probably noticed there is an explicit return, this explicit return is something that is not needed with Amber. Since
redirect_to uses the
halt! method in the background.