Настройка полей с помощью гема администрирования для рельсов
Кажется, я не могу найти какую-либо документацию о том, как изменить панели управления по умолчанию для gem, чтобы настроить отображение в индексе и показ страниц. Вот моя конкретная цель:
- Учитывая, что
Article
belongs_to
Author
- Когда я создаю статью
- Я хочу увидеть фамилию автора в раскрывающемся списке для соответствующего поля
- И после сохранения я хочу увидеть фамилию автора в указателе статьи и показать страницы
Прямо сейчас вместо этого я получаю не очень полезный "Автор № 4" в качестве лейбла. Вот автоматически сгенерированная панель инструментов:
class ArticleDashboard < Administrate::BaseDashboard
ATTRIBUTE_TYPES = {
author: Field::BelongsTo,
id: Field::Number,
title: Field::String,
content: Field::Text,
created_at: Field::DateTime,
updated_at: Field::DateTime,
}.freeze
[snip]
end
На странице документации " Настройка панели инструментов" написано:
Каждый из типов полей имеет различный набор параметров, которые задаются через
.with_options
метод класса.
Итак, я считаю, что призвание with_options
на Field::BelongsTo
может быть, путь, но какие варианты доступны для этого поля (или для любого другого, в этом отношении)?
1 ответ
В режиме администрирования вы можете настроить отображение ресурса, переписав метод #display_resource на панели мониторинга ресурса.
Все ваши панели мониторинга наследуются от Administrate::BaseDashboard, который использует следующий метод для отображения ресурсов:
def display_resource(resource)
"#{resource.class} ##{resource.id}"
end
Вы захотите добавить что-то вроде этого в AuthorDashboard, чтобы перезаписать значение по умолчанию:
def display_resource(author)
author.last_name
end