不显示嵌入在活动管理员资源中的Mongoid记录

时间:2014-09-02 10:06:17

标签: ruby-on-rails-4 mongoid activeadmin

我有以下型号

class User::ActiveAdmin::Partner < User::ActiveAdmin::Base
  embeds_many :bonuses, class_name: 'User::Bonus'
end 

class User::Bonus
  include Mongoid::Document
  embedded_in :partner, class_name: 'User::ActiveAdmin::Partner'
end

然后我在Active Admin中注册奖金

    ActiveAdmin.register User::Bonus, as: 'Bonuses' do
      config.filters = false

      permit_params :number, :order_id


      controller do
        def scoped_collection
          if current_admin_user.is_a? User::ActiveAdmin::Partner
            current_admin_user.bonuses.page(params[:page]).per(10)
          else
            super
          end
        end

      end

该集合不是空的(我已经创建了几个奖金),但在ActiveAdmin索引页面中我看到,没有奖励。我无法做任何事情来使它正确显示。我注意到,User :: Bonus表是空的,即使伙伴确实有,但据我所知,这是它的工作方式,这没关系。那我怎样才能让我的桌子显示出来?谢谢。

1 个答案:

答案 0 :(得分:1)

方法ActiveAdmin :: Helpers :: Collection#collection_size中的问题。您正在使用旧版本的activeadmin-mongoid。尝试更新activeadmin-mongoid。 在rails4分支中,collection_size不正确。您应该在应用中覆盖此方法,例如:https://github.com/elia/activeadmin-mongoid/blob/master/lib/active_admin/mongoid/helpers/collection.rb