ActiveAdmin:在列中显示父名称

时间:2016-10-05 17:55:44

标签: ruby-on-rails ruby activeadmin

所以基本的是我目前有一个名为categories show self

的自引用模型
class Category < ApplicationRecord
    belongs_to :category
    has_many :children, -> { order(:name) }, :dependent => :destroy, :class_name => 'Category'

    validates :name, presence: true
end

以下是Category

的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

我要做的是检查类别是否属于子类别,如果显示父母姓名,如果不显示,则显示父母&#39;。如上所示,我有显示父工作的代码。

如果我不使用代码块,只需使用以下代码:

column :category_id

然后它将显示父名称。但这是我在代码块中使用category.category_id时看到的内容

Category Table displaying numeric for parent category

也许我错过了什么,但非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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允许显示父级。希望这可以帮助将来的某个人。