ActiveAdmin by default will build you a table (using table_for) for a collection of objects. But sometimes you just want to throw up a quick table of random values - eg on a dashboard you want a table where the left=column is a description and the right column is, say sets of counts of various things.
ActiveAdmin uses Arbre under the covers to build html for you This means you can use it to laboriously build an html table using all the tags. But if you just want to throw together a super-simple table, this means too much typing.
So I've written a convenience method that will take an array of values and convert it directly to a table.
Note: it does no checking... so make sure your array has the same number of columns for each row
# put this in config/initializers/active_admin.rb module ActiveAdmin module Views class SimpleTable < Arbre::HTML::Table builder_method :simple_table def build(collection) table do collection.each do |row| tr do row.each do |col| if col.is_a? Numeric td col, style: "text-align: right;" else td col end end end end end end end end end # example usage simple_table [ [ "User count", User.count ], [ "Item count", Item.count ], [ "Total Wishes", Wish.count ], [ "Available Items", Item.available.count ] ]
No comments:
Post a Comment