为什么我在 rails_admin 显示视图中看不到日期时间字段?

Joh*_*ltz 4 datetime rails-admin

我正在向 rails_admin 添加一个新模型。即使没有任何配置,列表页面也能正确显示日期时间字段。但是给定对象的详细信息(显示)页面不显示日期时间。如何配置 rails_admin 以在显示页面上显示日期时间字段?

模型文件:alert_recording.rb:

class AlertRecording < ActiveRecord::Base
  attr_accessible :user_id, :admin_id, :message, :sent_at, :acknowledged_at, :created_at, :updated_at
end
Run Code Online (Sandbox Code Playgroud)

Rails_admin 初始化文件:

...
config.included_models = [
  AlertRecording
]

...

config.model AlertRecording do
  field :sent_at, :datetime
  field :acknowledged_at, :datetime
  field :message
  field :user
  field :admin
  field :created_at, :datetime
  field :updated_at, :datetime
  list do; end
  show do; end
end
Run Code Online (Sandbox Code Playgroud)

配置日期时间字段以便我在节目视图中看到它们的正确方法是什么?

Sam*_* P. 5

这些字段在默认情况下是隐藏的,您可以在此处看到:

https://github.com/sferik/rails_admin/blob/ead1775c48754d6a99c25e4d74494a60aee9b4d1/lib/rails_admin/config.rb#L277

您可以在配置初始值设定项上覆盖此设置,只需打开文件config/initializers/rails_admin.rb并向其中添加以下行:

config.default_hidden_fields = []

或类似的东西:

config.default_hidden_fields = [:id, :my_super_top_secret_field]

这样你就不需要对应用程序中的每个模型进行配置;)

但!!!这将在编辑操作中显示这些字段,因此在这种情况下隐藏 id、created_at 和 updated_at 是个好主意。

为此,您可以为此设置分配一个散列,如下所示:

config.default_hidden_fields = {
  show: [],
  edit: [:id, :created_at, :updated_at]
}
Run Code Online (Sandbox Code Playgroud)

而且,你有你想要的东西。;)

  • 您也可以直接执行 `config.default_hidden_​​fields[:show] = []` (2认同)