You're viewing Avo 2 docs — go to Avo 4

Skip to content

Avo 2.0 documentation map ​

A map of every Avo 2.0 documentation page and its headings, designed for easy navigation by LLMs.

For the concise index, see llms.txt. For the full text of every page in one file (large — high token count), see llms-full.txt. For this map as raw markdown, see docs-map.md.

Auto-generated from the VitePress sidebar by scripts/generate-docs-map.js. Do not edit manually.

Document structure ​

  • ## marks documentation groups (e.g. 'Resources')
  • ### marks individual documentation pages
  • Nested bullets show the headings within each page
  • Each page title links to the full documentation

Avo 2 ​

Intro ​

    1. The CRUD UI
    1. Dashboards
    1. Custom content
  • Seamless upgrades
  • Next up
  • Walkthrough videos
    • Build a blog admin panel
    • Build a booking app

Avo, Rails & Hotwire ​

  • Avo as a Rails engine
    • Prepend engine name in URL path helpers
    • Use your helpers inside Avo
  • Hotwire
  • StimulusJS

Licensing ​

  • Community vs. Pro
  • One license per site
    • More installations/environments per site
    • Sites
  • Add the license key
  • Configure the display of license request timeout error
  • Purchase a license
  • License validation
    • "Phone home" mechanism
  • Upgrade your 1.0 license to 2.0

Upgrade guide ​

  • Upgrade from 2.43 to 2.44
  • Upgrade from 2.42.1 to 2.42.2
  • Upgrade from 2.40 to 2.41
    • Badge field secondary option renamed to neutral
  • Upgrade from 2.35 to 2.36
    • formatusing is dropping the value argument
  • Upgrade from 2.33 to 2.34
    • You may remove the locale files Avo generated for you
  • Upgrade from 2.30 to 2.31
    • Ensure that your app works with View Component 2.54
    • Use the new with API in your tools and resource tools
  • Upgrade from 2.30.1 to 2.30.2
  • Upgrade from 2.29 to 2.30.1
  • Upgrade from 2.28 to 2.29
    • Add the search? method to your policies
  • Upgrade from 2.27 to 2.28
  • Upgrade from 2.26 to 2.27
    • Replace resolvefindscope with findrecordmethod
  • Upgrade from 2.20 to 2.21
    • Updated a few translation strings
  • Upgrade from 2.19 to 2.20
  • Upgrade from 2.18 to 2.19
    • Add a dashboards directory
    • Remove the params from the visible block in actions
  • Upgrade from 2.17 to 2.18
    • Manually require some gems
  • Upgrade from 2.16 to 2.17
    • Field internals changes
  • Upgrade from 2.13 to 2.14
  • Upgrade from 2.12 to 2.13
    • Remove the params from the searchquery block
  • Upgrade from 2.10 to 2.11
    • Avo uses the locale configuration from the initializer
    • Change the format option in the date time and date fields
  • Upgrade from 2.8 to 2.9
    • Avo generates paths based on the resource name not the model name
    • Actions are visible on the Edit view
    • Eject translation files
  • Upgrade from 2.7 to 2.8
    • Pass the resource to the showfieldwrapper in custom fields
    • Changed the way the ranges option is processed
  • Upgrade from 2.5 to 2.6
    • Change the way the cards run their queries
  • Upgrade from 2.4 to 2.5
    • Change the way the scope is declared in associations
  • Upgrade from 1.x to 2.0
    • Update the gem
    • Update your sidebar & profile partials
    • View components
    • Translations
    • Controllers

Technical Support ​

  • (No headings found)

Code editors and LLM setup ​

  • (Page source not found)

Configuration ​

Installation ​

  • Requirements
  • Installing Avo
  • Install from GitHub
  • Mount Avo to a subdomain
  • Next steps

Authentication ​

  • Customize the currentuser method
    • Using devise
    • Use a different authenticator
  • Customize the sign-out link
    • Customize the current user resource name
    • Customize the entire sign-out path
  • Filter out requests
  • authenticatewith method
  • Authorization

Authorization ​

  • Ensure Avo knows who your current user is
  • Policies
  • Associations
    • Example scenario
  • Removing duplication
  • Attachments
  • Scopes
  • Using different policy methods
  • Raise errors when policies are missing
  • Custom policies
  • Custom authorization clients
    • Change the authorization client
    • Client methods
  • Rolify integration

Cache ​

  • Cache store selection
    • Production
    • Test
    • Development and other environments
    • Custom selection
  • Solid Cache

CRUD UI ​

Resource configuration ​

  • Overview
  • Resources from model generation
  • Manually defining resources
    • Fields
  • Use multiple resources for the same model
    • modelresourcemapping
  • Setting the title of the resource
    • Using a computed title
  • Resource description
    • Set the description as a string
    • Set the description as a block
  • Eager loading
  • Views
    • Grid view
  • Custom model class
  • Routing
  • Devise password optional
  • Unscoped queries on Index
  • Hide resource from the sidebar
  • Extending Avo::ResourcesController
  • Show buttons on form footers
  • Customize what happens after a record is created/edited
  • Hide the record selector checkbox
  • Link to child resource (STI)
  • Manually registering resources
    • type
    • size
    • Examples
      • Default
      • Countless
      • Countless and "pageless"

Controller configuration ​

  • Request-Response lifecycle
  • Create methods
  • Update methods
  • Destroy methods

Field options ​

  • Declaring fields
  • Field conventions
  • Change field name
  • Showing / Hiding fields on different views
  • Field Visibility
    • Using if for field visibility
  • Computed Fields
  • Fields Formatter
    • Formatting with Rails helpers
  • Modify the value before saving it to the database
  • Sortable fields
  • Custom sortable block
  • Placeholder
  • Required
  • Readonly
    • Readonly as a block
  • Disabled
  • Default Value
  • Help text
  • Nullable
  • Link to resource
  • Align text on Index view
  • Stacked layout
    • inline layout (default)
    • stacked layout
  • Global stacked layout

Records reordering ​

  • Configuration
  • Always show the order buttons
  • Display the buttons in the Index view or association view
  • Change the scope on the Index view

Tabs and panels ​

  • Panels
    • Index view fields
  • Tabs
    • Tabs on Show view
    • Tabs on Edit view
  • Display as pills
    • Display all tabs as pills
    • Display only some tabs as pills

Resource sidebar ​

  • Adding fields to the sidebar

Customizable controls ​

  • Default buttons
  • Show page
  • Customize the controls
  • Controls
    • Supported options
    • Supported options
    • Supported options
    • Supported options
    • exclude option
    • Example
    • Supported options
    • Supported options
    • Supported options
    • Example
  • Control Options
    • Possible values
    • Possible values
    • Possible values
    • Possible values
    • Possible values
    • Possible values
  • Conditionally hiding/showing actions

Fields ​

Area ​

  • Description
  • Options
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
  • Options combined

Badge ​

  • Description
  • Options
    • Default value
  • Examples

Boolean ​

  • Options
    • Default value
    • Default value

Boolean group ​

  • Options
    • Default value
  • Example DB payload

Code ​

  • Options
    • Default value
    • Possible values
    • Default value
    • Possible values
    • Default value
    • Possible values
    • Default value
    • Possible values
    • Default value
    • Possible values
    • Default value
    • Possible values

Country ​

  • Options
    • Default value
    • Possible values

Date ​

  • Options
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values

Date time ​

  • Options
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values

External image ​

  • Options
    • Default value
    • Possible values
    • Default value
    • Possible values
    • Default value
    • Possible values
  • Use computed values
  • Use in the Grid cover position

File ​

  • Options

Files ​

  • Options
    • Default
    • Possible values
    • Default
    • Possible values

Gravatar ​

  • Options
    • Default
    • Possible values
    • Default
    • Possible values
  • Using computed values

Heading ​

  • Options

Hidden ​

  • Example usage:

Id ​

  • Options

Key value ​

  • Options
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
  • Customizing the labels
  • Enforce restrictions

Location ​

  • Description
  • Options
    • Default value
    • Possible values
    • Default value
    • Possible values

Markdown ​

  • Options
    • Default
    • Possible values
  • Enable spell checker

Number ​

  • Options
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
  • Examples

Password ​

  • (No headings found)

Progress bar ​

  • Options
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
  • Examples

Select ​

  • Options
    • Default
    • Possible values
    • Default
    • Possible values
  • Include blank
    • Default
    • Possible values
  • Computed options

Status ​

  • Options
    • Default value
    • Possible values
    • Default value
    • Possible values

Tags ​

  • Options
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
  • PostgreSQL array fields
  • Acts as taggable on
  • Array fields

Text ​

  • Options
    • Default
    • Possible values
  • Customization

Textarea ​

  • Options
    • Default
    • Possible values

Time ​

* Default
* Possible values
* Default
* Possible values
* Default
* Possible values

Trix ​

  • Options
    • Default
    • Possible values
  • File attachments
  • Disable attachments
  • Remove attachment attributes

Associations ​

Customization ​

  • Single Table Inheritance (STI)
  • Link to child resource when using STI
  • Add custom labels to the associations' pages

Belongs to ​

  • Options
    • Default
    • Possible values
    • Default
    • Possible values
    • Default
    • Possible values
  • Overview
  • Polymorphic belongsto
  • Polymorphic help
  • Searchable belongsto
  • Belongs to attach scope
  • Allow detaching via the association

Has one ​

  • Options

Has many ​

  • Options
  • Has Many Through

Has and belongs to many ​

  • Options
    • Searchable hasandbelongstomany

Dashboards and cards ​

Dashboards ​

  • Generate a dashboard
  • Settings
  • Cards
    • Base settings
    • Control the aggregation using ranges
    • Keep the data fresh
    • Hide the header
    • Override card options from the dashboard
      • Control the base settings from the parent
  • Cards visibility
  • Card types
    • Metric card
      • Calculate results
      • Decorate the data using prefix and suffix
    • Chartkick card
      • Chart types
      • Customize chart
    • Partial card
  • Dividers
  • Dividers visibility
  • Dashboards visibility
  • Dashboards authorization

Cards ​

  • Base settings
    • Control the aggregation using ranges
    • Keep the data fresh
    • Hide the header
    • Metric card
      • Calculate results
      • Decorate the data using prefix and suffix
    • Chartkick card
      • Chart types
      • Customize chart
    • Partial card

Customize Avo ​

Customization options ​

  • Change the app name
  • Timezone and Currency
  • Resource Index view
    • Resources per page
    • Per page steps
    • Resources via per page
    • Default view type
  • ID links to resource
  • Resource controls on the left side
  • Container width
    • Display the Index view full-width
    • Display all views full-width
  • Cache resources on the Index view
  • Context
  • Eject views
    • Prepared templates
      • Logo
      • Header
      • Footer
      • Scripts
    • Eject any template
  • Breadcrumbs
    • Breadcrumbs for custom pages
  • Page titles
  • Home path
    • Use a lambda function for the homepath
  • Mount Avo under a nested path
  • Custom viewcomponent path
  • Custom query scopes
    • Custom scope for Index page
    • Custom scope for Show and Edit pages
    • Custom find method for Show and Edit pages
    • Custom toparam method
      • Using the friendly gem
      • Using prefixedids gem
  • Disable features
  • Customize profile name, photo, and title
    • Customize the name of the user
    • Customize the profile photo
    • Customize the title of the user
    • Customize the sign-out link
  • Skip show view

Grid view ​

  • Enable grid view
  • Make default view
  • Fields configuration
  • Use a computed field for the cover field

Map view ​

  • Enable map view
  • Make it the default view
  • Menu item types
    • all helpers
  • Item visibility
  • Add data attributes to items
  • Using authorization rules
  • Icons
    • Icons on resource, dashboard, and linkto items
  • Collapsable sections and groups
    • Default collapsed state
  • Authorization
  • Profile menu
  • Forms in profile menu
  • Custom content in the profile menu
  • Enable search for a resource
  • Authorize search
  • Configure the search result
    • Label
    • Description
    • Avatar
    • Header Help Text
  • Resource search
  • Global search
    • Hide the global search
  • Hide a resource from the global search
    • Scope out global or resource searches
  • Search result path

Filters ​

  • Defining filters
    • Filter values
  • Boolean Filter
    • Default value
  • Select Filter
    • Default value
  • Multiple select filter
  • Dynamic options
  • Text Filter
  • Default value
  • Registering filters
  • Dynamic filter options
  • React to filters
  • Empty message text
  • Keep filters panel open
  • Visibility
  • Filters arguments
  • Manually create encoded URLs
    • Rails helpers
      • Usage
      • Usage
    • Standalone helpers
      • Usage
      • Usage
  • Persistent filters

Actions ​

  • Overview
  • Registering actions
  • Action responses
    • Message responses
    • Run actions silently
  • Response types
  • Customization
    • Customize the message
      • Callable message
    • Customize the buttons
    • No confirmation actions
  • Standalone actions
  • Actions visibility
  • Actions authorization
  • Actions arguments

Localization (I18n) ​

  • Localizing resources
  • Localizing fields
  • Setting the locale
  • Re-generate the locale
  • FAQ
    • Advanced localization is a Pro feature
    • The I18n.t method defaults to the name of that field/resource

Branding ​

  • Configure brand color
  • Customize the chart colors
  • Customize the logo
  • Customize the missing image placeholder
  • Customize the favicon

Custom content ​

Custom pages ​

  • Generate tools
    • Controller
    • Route
    • Sidebar item
    • Customize the sidebar
  • Add assets
  • Using helpers from your app
    • Using path helpers
      • For Avo paths
      • For the main app paths

Custom fields ​

  • Generate a new field
  • Field options
  • Field Visibility
  • Customize the views
  • Field assets
  • Use pre-built Stimulus controllers
    • Hidden input controller

Resource tools ​

  • Generate a resource tool
  • Partial context
  • Tool visibility
    • Using path helpers
      • For Avo paths
      • For the main app paths
  • Add custom fields on forms

Stimulus JS integration ​

  • Assign Stimulus controllers to resource views
    • Field wrappers as targets
    • Field inputs as targets
    • All controllers receive the view value
  • Assign Stimulus controllers to actions
  • Attach HTML attributes
    • Declare the fields from the outside in
  • The object notation
  • The block notation
  • Where are the attributes added?
  • Index field wrapper
  • Show field wrapper
  • Show label target
  • Show content target
  • Edit field wrapper
  • Edit label target
  • Edit content target
  • Edit input target
  • Composing the attributes together
  • Pre-made stimulus methods
    • resource-edit#toggle
    • resource-edit#disable
    • resource-edit#debugOnInput
  • Custom Stimulus controllers
  • Use Stimulus JS in a tool
    • Set up a controller
    • Register that controller with the current Stimulus app
    • Use the controller in the Avo tool

Custom asset pipeline ​

  • Avo's assets
  • Your custom assets
  • Use TailwindCSS utility classes
  • Add custom JS code and Stimulus controllers
  • Use Importmap to add your assets
  • Use js-bundling with esbuild
  • Use js-bundling with rollup or webpack
  • Manually add your CSS and JS assets
    • Sprockets and Propshaft
    • Webpacker

Native Avo components ​

Avo::PanelComponent ​

  • Options
    • Type
    • Type
    • Type
    • Type
    • Type
    • Type
  • Slots

Native field components ​

  • Declaring fields
  • The form option
  • The value option
  • Other field options
  • Component options
  • avofield helper

Field wrappers ​

* Default
* Default
* Default
  • Field wrapper areas
    • Label
    • Value
    • Extra
  • Options
    • Default
    • Default
    • Default

Internals ​

Testing ​

  • Testing Actions

Avo::ApplicationController ​

  • On extending the ApplicationController
  • Responsibly extending the ApplicationController

Evaluation hosts ​

  • What's a host?
  • BaseHost
    • params
    • Avo's context object
    • The viewcontext object
    • The current user
  • Evaluating the block
  • RecordHost
  • ViewRecordHost
  • ResourceViewRecordHost
  • AssociationScopeHost