Настройка полей с помощью гема администрирования для рельсов

Кажется, я не могу найти какую-либо документацию о том, как изменить панели управления по умолчанию для gem, чтобы настроить отображение в индексе и показ страниц. Вот моя конкретная цель:

  • Учитывая, что Articlebelongs_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
Другие вопросы по тегам