使用管理 gem 为 rails 自定义字段

Customizing fields with the administrate gem for rails

我似乎找不到任何关于如何修改 administrate gem 的默认仪表板以自定义索引和显示页面中显示的内容的文档。这是我的具体目标:

现在,我得到一个不太有用的 "Author #4" 作为唱​​片公司。这是自动生成的仪表板:

class ArticleDashboard < Administrate::BaseDashboard
  ATTRIBUTE_TYPES = {
    author: Field::BelongsTo,
    id: Field::Number,
    title: Field::String,
    content: Field::Text,
    created_at: Field::DateTime,
    updated_at: Field::DateTime,
  }.freeze
  [snip]
end

Customizing Dashboard”文档页面说:

Each of the Field types take a different set of options, which are specified through the .with_options class method.

所以我认为在 Field::BelongsTo 上调用 with_options 可能是可行的方法,但是该字段(或任何其他字段)有哪些可用选项?

在管理中,您可以通过覆盖资源仪表板中的 #display_resource 方法来自定义资源的显示方式。

您的所有仪表板都继承自 Administrate::BaseDashboard,它使用以下方法显示资源:

def display_resource(resource)
  "#{resource.class} ##{resource.id}"
end

您需要将类似这样的内容添加到 AuthorDashboard 以覆盖默认设置:

def display_resource(author)
  author.last_name
end