0

我正在使用 gemdiscardrails-admin. 我想知道哪种方法是在 rails admin 的商店中列出我的活跃用户的最佳方法,同时考虑到保留的用户

我在模型店创建了一个方法:

class Shop < ApplicationRecord
  include ShopRailsAdmin

 has_many :users

 def active_users
  users.kept
 end
end

在 rails admin 我正在使用:

field :active_users do
  label 'Users'
end

但是我收到的是 AssociationRelation 而不是 CollectionProxy 所以在视图中,关联看起来像

#<User::ActiveRecord_AssociationRelation:0x00007f9c34c1f8e0>

还有其他方法可以避免在模型店中定义方法吗?

PD:标签应该也是discard,但它不存在,我无法创建它。

谢谢!

4

1 回答 1

1

您需要将其定义为范围关联

class Shop < ApplicationRecord
  include ShopRailsAdmin

 has_many :users
 has_many :active_users, -> lambda { 
    where(discarded_at: nil) 
 }, class_name: 'User'
end

我假设您没有个性化discard_column。

Rails 管理员应该正确显示它们。

于 2019-05-29T19:27:47.013 回答