redirect_from: /docs/7-sidebars.html

Sidebar Sections

Sidebars allow you to put whatever content you want on the side the page.

sidebar :help do
  "Need help? Email us at [email protected]"

This will generate a sidebar on every page for that resource. The first argument is used as the title, and can be a symbol, string, or lambda.

You can also use Arbre to define HTML content.

sidebar :help do
  ul do
    li "Second List First Item"
    li "Second List Second Item"

Sidebars can be rendered on a specific action by passing :only or :except.

sidebar :help, only: :index do
  "Need help? Email us at [email protected]"

If you want to conditionally display a sidebar section, use the :if option and pass it a proc which will be rendered within the view context.

sidebar :help, if: proc{ current_admin_user.super_admin? } do
  "Only for super admins!"

You can access your model as resource in the sidebar too:

sidebar :custom, only: :show do

You can also render a partial:

sidebar :help                    # app/views/admin/posts/_help_sidebar.html.erb
sidebar :help, partial: 'custom' # app/views/admin/posts/_custom.html.erb

It's possible to add custom class name to the sidebar parent element by passing class option:

sidebar :help, class: 'custom_class'

By default sidebars are positioned in the same order as they defined, but it's also possible to specify their position manually:

# will push Help section to the top (above default Filters section)
sidebar :help, priority: 0

Default sidebar priority is 10.