使用administrate gem for rails自定义字段

Giu*_*ppe 5 rubygems ruby-on-rails thoughtbot

我似乎无法找到有关如何修改管理gem的默认仪表板的任何文档,以便自定义索引和显示页面中显示的内容.这是我的具体目标:

  • 鉴于Article belongs_to一个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
Run Code Online (Sandbox Code Playgroud)

" 自定义仪表板 "文档页面显示:

每个Field类型都使用一组不同的选项,这些选项通过.with_options类方法指定.

所以我想,在调用with_optionsField::BelongsTo可能是要走的路,但哪些选项可用于该字段(或任何其他为此事)?

小智 3

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

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

def display_resource(resource)
  "#{resource.class} ##{resource.id}"
end
Run Code Online (Sandbox Code Playgroud)

您需要将类似的内容添加到 AuthorDashboard 以覆盖默认值:

def display_resource(author)
  author.last_name
end
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。虽然这解决了特定问题,但我仍然想知道每种字段类型有哪些可用选项。 (2认同)