Docs

Handling requests with Rack and Rails

The Clerk Ruby SDK comes with Rack middleware to lazily load the Clerk session and user. If added as a gem to Rails application, the Clerk::Authenticatable concern can be added to your controller.

require "clerk/authenticatable"

class ApplicationController < ActionController::Base
  include Clerk::Authenticatable
end

This gives your controller and views access to the following methods:

  • clerk_session
  • clerk_user
  • clerk_user_signed_in?

If you want to protect a subset of your controllers (for example, if you have an admin section), you can add a before_filter like this:

class AdminController < ApplicationController
  before_action :require_clerk_session

  private
  def require_clerk_session
    redirect_to clerk_sign_in_url unless clerk_session
  end
end

Warning

Don't forget to set the environment variable CLERK_SIGN_IN_URL or the method clerk_sign_in_url will fail.

Feedback

What did you think of this content?