maze
  • Introduction
  • Getting Started
    • Quick Start
  • Guides
    • Overview
    • Installation
    • Create New App
    • Directory Structure
    • Configuration
    • Docker
    • Controllers
      • Sessions
      • Request & Response Objects
      • Halt!
      • Respond With
      • Params Validation
      • Cookies
      • Filters
      • Flash
      • Redirection
    • Views
      • View Helpers
    • Models
      • Granite
        • Granite's README
        • Migrations
        • Validations
        • Callbacks
        • Associations
        • Querying
        • Bulk Insertions
      • Crecto
        • Crecto's README
      • Jennifer
        • Jennifer Docs
        • Migrations
        • Models
    • Routing
      • Pipelines
      • Routes
    • Websockets
      • Channels
      • Sockets
      • JavaScript Client
    • Mailers
      • Deliver a new Email
  • Testing
    • System Tests
  • Deployment
    • Digital Ocean
    • Heroku
  • CLI
    • New
    • Recipes
    • Generate
    • Database
    • Watch
    • Routes
    • Exec
    • Encrypt
    • Deploy
  • Examples
    • Maze Auth
    • Crystal Debug
    • Minimal Configuration
  • Troubleshooting
  • Contributing
  • Code of Conduct
  • HAVE A QUESTION?
    • Ask on Gitter
    • Ask on StackOverflow
    • Follow on Twitter
    • Submit an issue
Powered by GitBook
On this page
  1. Guides
  2. Controllers

Halt!

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. Maze 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 Maze halt! to stop the request from continue execution.

class UserController < ApplicationController
  def index
    halt(404, "Forbiden") if params[:user_id].nil?
    reder "index.slang"
  end
end

A status code of 404 was returned, and the content in render will not be delivered to the client.

The next time you’re building a Maze application, consider using halt to simplify error handling.

Halt! and redirect_to

Unlike other frameworks Maze 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 < ApplicationController
  def index
    if some_condition
        if some_condition
            redirect_to(path_one) and return
            # Or another approach
            return redirect_to(path_one)
        end
    end
  end
end

As you probably noticed there is an explicit return, this explicit return is something that is not needed with Maze. Since redirect_to uses the halt! method in the background.

PreviousRequest & Response ObjectsNextRespond With

Last updated 7 years ago