错误未定义方法`[xxx]的'to_key':尝试在Active Admin table_for上使用数组数据时的数组(Rails,Postgresql,postgres_ext gem)

时间:2013-12-22 14:45:37

标签: ruby-on-rails arrays ruby-on-rails-3 postgresql activeadmin

我想使用我管理的数据进入一个数组数组,将它们放在一个表(table_for)中,放在Active Admin上的一个Dashboards上

我的应用程序是一个每日交易应用程序,旨在了解更多Ruby on Rails。

感谢SO的帮助,我现在设法在数组中获取所需的所有数据: Count occurrence of values in a serialized attribute(array) in Active Admin dashboard (Rails, Active admin 1.0, Postgresql database, postgres_ext gem)

我想要使用的数组数据看起来像(它实际上是一个数组数组) enter image description here

但我想要的是看起来像下面的图像,所以我想使用Active Admin的table_for(稍后将具有所有导出功能): enter image description here

我的信息中心页面上的当前代码是

columns do 

  column do

    data = Deal.connection.select_rows(
        %q{ with expanded_deals(id, goal) as (
        select id, unnest(deal_main_goal)
        from deals)

        select goal, count(*) n
        from expanded_deals
        group by goal
        order by goal; }).each do |row|
        goal = row.first
        n    = row.last.to_i
        #....
      end

    panel "Top Goals" do

      table_for data do
          #code
      end

    end  

  end
end  

即使没有在table_for数据中放入任何代码,我也已收到错误:

undefined method `to_key' for ["Acquisition (website or newsletter opt-ins)", "3"]:Array

如何使用数组的数据将它们放入标准table_for中,并使用我的基本列“目标”/“交易数量”?

我可能偶然发现一张可能无法使用AA的机票:https://github.com/gregbell/active_admin/issues/1713

有人会知道怎么做吗?

1 个答案:

答案 0 :(得分:2)

我刚刚打开了一个拉取请求来添加此功能:https://github.com/gregbell/active_admin/pull/2812

这使您可以在表格中使用任意数据,如下所示:

table_for foo: 1, bar: 2 do
  column :foo
  column :bar
end

请将拉出请求放入Gemfile:

gem 'activeadmin', github: 'seanlinsley/active_admin',
                   branch: 'feature/1713-support_arbitrary_objects_for_tables'

更新

现已合并为主人:

gem 'activeadmin', github: 'gregbell/active_admin'