在 ActiveAdmin 中,有没有办法显示关联的 nil 模型?

In ActiveAdmin, is there a way to display associated nil model?

我有一个模型站点,其中包含用户的外键,user_id。所有站点都有 user_id,但随着时间的推移,一些引用的用户元素已被删除。我的 ActiveAdmin 索引如下所示:

index do
  column :domain
  column :user
  column :created_at
  column :updated_at
end

我在缺少用户的情况下得到的错误是:

user_name delegated to user.name, but user is nil

有没有办法修改我的索引方法,使其在这种情况下不会出错?

有两种方法可以实现这一点。首先是自定义 index 代码:

index do
  column :domain
  column :user_name do |site|
    site.user.try(:name)
  end
  #...
end

Reference.

或者,您可以将 allow_nil 选项添加到 delegate 方法:

class Site
   delegate :name, to: :user, prefix: true, allow_nil: true
end

Reference.