Giuseppe
Giuseppe

Reputation: 5338

Customizing the show page in ActiveAdmin

The default show page in ActiveAdmin is a table with one attribute per row. For my backend, this would be fine, except that I want to hide fields such as id, created_at, updated_at.

Is is possible to do that in a way similar to the index page, i.e. by explicitly listing the desired attributes, while letting AtiveAdmin handle the layout?

The only example shown in the docs suggests that to customize the show page you have to completely take over and write a partial or an arbre construct.

Thanks!

Upvotes: 11

Views: 16949

Answers (3)

d1jhoni1b
d1jhoni1b

Reputation: 8025

This will show an example of an object Package with a has_many relationship (FAQS)

  show do |package|
    attributes_table do
      row :slug
      ...
      row :hotel
      panel "FAQS" do
        table_for package.faqs do
          column :question
          column :answer
        end
      end
    end
  end

It will be rendered like this:

enter image description here

Upvotes: 0

kajal
kajal

Reputation: 13

show do

  attributes_table do
    row :profilepic do
      image_tag admin_user.profilepic.url, class: 'my_image_size'
    end
  row :name
  row :email
  row :adrs
  row :phone
  row :role
  row :salary
  row :parent_id
  row :joindate
end

end

Upvotes: 2

Michael Hellein
Michael Hellein

Reputation: 4568

I think you're looking for attributes_table:

show do
  attributes_table :name, :content
end

See https://github.com/gregbell/active_admin/blob/master/lib/active_admin/views/pages/show.rb if you're curious.

(I completely removed my prior answer because it was basically useless!)

Upvotes: 25

Related Questions