I am currently creating a dashboard in Active Admin for my product orders (and associated models). I want to show data from multiple models within this table, and as a result the table is horribly repetitive. I am not very good with Active Admin and would love some advice on refactoring this code:
#dashboard.rb
section "Your tasks for this week" do
    table_for Order.all do
        column "Order ID",     :id
        column "Status" do |order|
            order.order_status.name
        end
        column "Email" do |order|
            order.customer_info.email
        end
        column "Name" do |order|
            order.customer_info.name
        end
        column "Address" do |order|
            order.customer_info.address
        end
        column "City" do |order|
            order.customer_info.city
        end
        column "State/Province" do |order|
            order.customer_info.province
        end
        column "Postal Code" do |order|
            order.customer_info.postal
        end
        column "Country" do |order|
            order.customer_info.country
        end
        column "Bagel" do |order|
            order.order_items.each do |oi|
                li oi.bagel_type
            end
        end
        column "Topping1" do |order|
            order.order_items.each do |oi|
                li oi.topping1
            end
        end
        column "Topping2" do |order|
            order.order_items.each do |oi|
                li oi.topping2
            end
        end
        column "Topping3" do |order|
            order.order_items.each do |oi|
                li oi.topping3
            end
        end
        column "Open" do |order|
            order.order_items.each do |oi|
                li oi.open
            end
        end
    end
end
To give you more information about my models and associations, there is an Order model which has_many order_items and has_one customer_info. order_items and customer_info both belong to Order.
                        
I don't think there is a need for refactoring - what you have is readable and understandable code. But, if you still want to, you could use, for example, some metaprogramming.
For instance, this piece of code:
can become this short: