0

我有一个通用的设计 rails 4 设置,我现在正在玩活动管理员。

假设我有一个模型

class User
  has_many :customers
end

class Customer
  belongs_to :user
end

带有索引的数据库和一切都很好。

我的 activeadmin 文件夹中有一个简单的 user.rb:

  index do
    column :email
    column :current_sign_in_at
    column :last_sign_in_at
    column :sign_in_count
    default_actions
  end

我试图显示每个用户的客户数量。我怎么能意识到这一点?AA 文档在这方面有点薄。我试过column :customer.count但那只是垃圾。

有什么想法或建议吗?最好的问候否认_

4

1 回答 1

1

一种方法是column("Customers Count"){|u| u.customers.count }到您的索引。他会为每个用户做一个计数查询。除非您有 100,000 个用户,否则应该不是问题。

解决这个问题的更聪明的方法是使用计数器缓存的可能性。

http://railscasts.com/episodes/23-counter-cache-column http://guides.rubyonrails.org/association_basics.html#counter_cache

那么你只需要添加column :customers_count到你的索引

于 2013-09-24T12:15:10.317 回答