#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 в блоке кода позволило отобразить родительское имя. Надеюсь, это поможет кому-то в будущем.