How Rodauth::Rails::App works
mainThe Rodauth::Rails::App class is a Roda subclass that provides a convenience layer over Rodauth. It consists of three main parts:
- Configure block: A wrapper around
plugin :rodauth. It can define named auth classes, anonymous classes, or pass additional plugin options. - Route block: A block called for each request before it reaches the Rails router. It yields the request object
r. - Rack env: The app injects Rodauth objects into the Rack environment, making them accessible in Rails controllers and views via
request.env.
Accessing Rodauth in Rails:
request.env["rodauth"]returns the primary Rodauth instance.request.env["rodauth.admin"]returns a specific named configuration (e.g., if using:admin).
class RodauthApp < Rodauth::Rails::App
# named auth class
configure(RodauthMain)
configure(RodauthAdmin, :admin)
# anonymous auth class
configure { ... }
configure(:admin) { ... }
# plugin options
configure(RodauthMain, json: :only, render: false)
route do |r|
# called before each request
end
end