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
- The CRUD UI
- Dashboards
- 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
- Metric 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
- Prepared templates
- 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 editor
- 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
Search
- 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
- Rails helpers
- 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
- Customize the message
- 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
- Using path helpers
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
- Using path helpers
- 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