Sidebar Sections
Sidebars allow you to put whatever content you want on the side the page.
sidebar :help do
para "Need help? Email us at help@example.com"
end
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"
end
end
Sidebars can be rendered on a specific action by passing :only
or :except
.
sidebar :help, only: :index do
para "Need help? Email us at help@example.com"
end
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
span "Only for super admins!"
end
You can access your model as resource in the sidebar too:
sidebar :custom, only: :show do
resource.a_method
end
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
.