Ruby on Rails:使用Array的ActiveAdmin范围显示错误的记录计数

时间:2014-12-09 16:30:29

标签: ruby-on-rails ruby activeadmin

我是Ruby on Rails的新手,我几天都在努力解决这个问题。

我有一个ActiveAdmin页面,它从不同的Db中提取信息。

我创建了几个范围部分来处理不同的类别。 ActiveAdmin的代码看起来与此类似:

ActiveAdmin.register MyItem do

  scope :all

  scope :first_db do |myitem|
     myitem.where(deleted: false)
  end

  scope :FromDBs, show_count=>true do |myitem|
   Kaminari.paginate_array(MyItem.get_from_dbs).page(params[:page])
  end

  index do
  column :name
  column :value

end

现在,我遇到的问题是范围" FromDBs"。它在顶部显示为记录计数 记录的数量为25(这是我的分页页面大小)而不是总金额 数组中的记录。如果我进入页面的页脚,"下一步"按钮显示正确的记录数量。

所以,我的问题是,如何制作"范围"部分显示 数组上的记录数量,而不是每页的记录数量。

在某种程度上,我试图遵循here的一些推荐,但不是真的 为我工作。这就是为什么我使用Kaminari能够对数组进行分页。

感谢任何指针。

1 个答案:

答案 0 :(得分:2)

您不必在ActiveAdmin资源块中定义范围,而是希望在模型类中使用范围定义。我有类似的设置如下:

class Manager < ActiveRecord::Base
  scope :active,    -> { where deleted_at: nil }
  scope :inactive,  -> { where.not deleted_at: nil }
  ...
end
ActiveAdmin.register Manager do
  scope :active, default: true
  scope :inactive
end

相应地处理记录计数。

enter image description here