Skip to content


Subversion checkout URL

You can clone with
Download ZIP


table_for with no items displays "[]" #1016

djwonk opened this Issue · 12 comments

6 participants


In a show page for one object, where a table_for is used to display associated items, it displays "[]" instead of just making an empty table.

Source code example, in my cases.rb file:

ActiveAdmin.register Case do

# ...

panel "Notes" do
  table_for(c.case_notes) do |t|
    t.column("Note ID", :id) do |case_note|
      link_to(case_note.pretty_id, admin_case_note_path(case_note))
    t.column("Contact ID") do |case_note|
      contact =
      if contact
        link_to(contact.pretty_id, admin_contact_path(contact))
    # ...

The associated html is:

       <div class="panel">
          <div class="panel_contents">
            <table border="0" cellspacing="0" cellpadding="0">
                  <th class="">Note ID</th>
                  <th class="">Contact ID</th>
                  <th class="">CSR</th>
                  <th class="note">Note</th>

I hacked out the offending stray text using jQuery:

$(document).ready(function() {
  var panel = $('div.panel_contents');
  panel.each(function(index) {
    var contents = $(this).contents();
    var shady = $(contents[0]);
@gregbell gregbell was assigned

What version of active admin are you using? I can't seem to replicate it on master.


For what it's worth, I'm experiencing this same issue on 0.3.4:


I tried setting my Gemfile to point to the github version of activeadmin. This didn't solve the problem.

Can you point me to the code that I should examine more closely? I don't mind digging in, but a few pointers would help.


@djwonk I tried looking into this a bit and couldn't figure it out on first walkthrough. The code in question can be found here

You also might want to look in the arbre directory as that's where the HTML is mainly generated (

My suspicion is that it has to do with default return values from some of the functions as otherwise why would a blank array show up? As an initial idea, perhaps the call to build_table should not be performed if the collection is empty.

I've had this problem on 0.3.4 and 0.4.0.


This happens on ruby 1.9 only because [].to_s returns "[]" on 1.9.


This is fixed in master. Slated for 0.4.2.


Thanks for fixing this!

I just want to mention that the behavior difference isn't just for []. It applies to all arrays.

In Ruby 1.8.7:

[1,2,3].to_s #=> "123"

In Ruby 1.9.3:

[1,2,3].to_s #=> "[1, 2, 3]"

Hopefully the code takes this into account.


Change only affects empty arrays. Arrays should work the same as they always have.


Closed by 2d70197

@pcreux pcreux closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.