How to customize one column and display remaining in activeadmin

15,070

Solution 1

If you specify an index block, you need to put all the columns that you want to show, because you are replacing the "default" behaviour.

In your case, you need to add the other 19 columns with something like:

ActiveAdmin.register Book do
 index do
  column :one
  column :two
  column :three
  column :name
  column :title
  column :pages
  column :description do 
    raw "<a class='view_description button'>View Description</a>"
  end
 end
end

Solution 2

How about this?

ActiveAdmin.register Book do
  index do
    columns_to_exclude = ["name"]
    (Book.column_names - columns_to_exclude).each do |c|
      column c.to_sym
    end
    column :description do 
      raw "<a class='view_description button'>View Description</a>"
    end
   end
end

Solution 3

In my case, I want only rename the one column, I have done this way ->

index do
    column :one
    column :two  
    ....
    column "View Description", :description # This will change you column label **description** to **View Description**
end

Solution 4

I was curious about this question too. Here is what I found

  index do
    column :id
    active_admin_config.resource_columns.each do |attribute|
      column attribute
    end
  end

https://github.com/activeadmin/activeadmin/blob/5dbf9b690302ecb4ba0c0ce59b2fb4735c88b35c/lib/active_admin/views/index_as_table.rb#L261

Solution 5

This also works when you want add or customize just a single column to the default list (based on an association which is for a belongs_to).

ActiveAdmin.register Book do
  index do
    column :publisher do |book|
      book.publisher.name
    end
    Book.column_names.each do |c|
      column c.to_sym
    end

  end
end
Share:
15,070

Related videos on Youtube

Senthil
Author by

Senthil

Love building Web &amp; mobile apps. Currently coding in Ruby on Rails, Django, Angular JS, React JS and more.

Updated on September 15, 2022

Comments

  • Senthil
    Senthil over 1 year

    I am using Active admin gem in my rails app. I added resources book which has 20 columns, now i need to customize only one column and print the remaining as it is. I tried below code

    ActiveAdmin.register Book do
     index do
      column :description do 
        raw "<a class='view_description button'>View Description</a>"
      end
     end
    end
    

    but which hides all the columns and show only description. Any help will be useful.

  • istrasci
    istrasci over 9 years
    Was searching the internet everywhere for this! Thank you!
  • spinlock
    spinlock about 9 years
    This is the best answer in StackOverflow.
  • Mayuresh Srivastava
    Mayuresh Srivastava over 5 years
    But in this case link(i.e. href) which shows by default on some columns i.e. referenced columns is not preserving. How to get that as well, without adding individual columns with link_to method?
  • Mayuresh Srivastava
    Mayuresh Srivastava over 5 years
    But in this case link(i.e. href) which shows by default on some columns i.e. referenced columns is not preserving. How to get that as well, without adding individual columns with link_to method?
  • vinhboy
    vinhboy about 3 years
    MVP answer right here... This also works in show do etc... This is a good way to retrieve all the columns using active_admin internals
  • Alex91ckua
    Alex91ckua over 2 years
    just one tip, better to use link_to 'View Description', root_path, class: 'view_description button' rather raw link