ActiveAdmin: отображение родительского имени в столбце

#ruby-on-rails #ruby #activeadmin

#ruby-on-rails #ruby #activeadmin

Вопрос:

Итак, основы заключаются в том, что в настоящее время у меня есть самоссылающаяся модель под названием categories, показанная ниже

 class Category < ApplicationRecord
    belongs_to :category
    has_many :children, -> { order(:name) }, :dependent => :destroy, :class_name => 'Category'

    validates :name, presence: true
end
  

Вот класс ActiveAdmin для категории

 ActiveAdmin.register Category do
    permit_params :name, :category_id

    index do
        column :name
        column(:category_id) do |category| 
            category.category_id? ? category.category_id : 'Parent'
        end
        actions
    end
end
  

Что я пытаюсь сделать, так это проверить, является ли категория подкатегорией, если она отображает родительское имя, если не отображает «Родительское». У меня есть код для отображения родительской работы, как вы видите выше.

Если я не использую блок кода и просто использую следующее:

 column :category_id
  

Затем он покажет родительское имя. Но вот что я вижу, когда использую category.category_id внутри кодового блока

Таблица категорий, отображающая числовое значение для родительской категории

Возможно, я что-то упускаю, но любая помощь очень ценится.

Ответ №1:

Я понял это, но хотел поделиться тем, что узнал. При использовании столбца с самостоятельной ссылкой вы можете использовать model.model для отображения родительско-дочерних отношений. Ниже было внесено изменение, чтобы заставить это работать:

 ActiveAdmin.register Category do
    permit_params :name, :category_id

    index do
        column :name
        column "Parent Category", (:category_id) do |category| 
            category.category_id? ? category.category : 'Parent'
        end
        actions
    end
end
  

Как вы можете видеть, использование category.category в блоке кода позволило отобразить родительское имя. Надеюсь, это поможет кому-то в будущем.