Controllers
Important: These docs are for the outdated Jets 5 versions and below. For the latest Jets docs: docs.rubyonjets.com
A Jets controller handles a web request and renders a response. Here’s an example:
app/controllers/posts_controller.rb:
class PostsController < ApplicationController
def index
# renders Lambda Proxy structure compatible with API Gateway
render json: {hello: "world", action: "index"}
end
def show
id = params[:id] # params available
# puts goes to the lambda logs
puts event # raw lambda event available
render json: {action: "show", id: id}
end
end
Helper methods like params
provide transparent access to the request parameters encoded in the API Gateway event. The render
method automatically adapts the response to the Lambda Proxy structure that API Gateway understands.
Jets creates one Lambda function to handle the all the controller requests. This keeps debugging simple and helps with prewarming.