微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

管理 gem - 如何在索引页面上显示目标模型没有作为列的属性

如何解决管理 gem - 如何在索引页面上显示目标模型没有作为列的属性

我正在尝试显示模型没有作为列的属性

例如,我想在用户索引仪表板上显示“total_salary”。 用户模型的架构如下,

id int
name string
age int

如上,用户模型没有“total_salary”列。

我更改了管理 gem 自动生成的仪表板页面

之前

ATTRIBUTE_TYPES = {
 id: Field::Number
 name: Field::String
 age: Field::Number
}

COLLECTION_ATTRIBUTES = {
 id: Field::Number
 name: Field::String
 age: Field::Number
}

之后

ATTRIBUTE_TYPES = {
 id: Field::Number
 name: Field::String
 age: Field::Number
 total_salary: Field::Number # Changed 
}

COLLECTION_ATTRIBUTES = {
 id: Field::Number
 name: Field::String
 age: Field::Number
 total_salary: Field::Number # Changed 
}

在哪里添加逻辑来计算每个用户的总工资? (如果文件女巫已经存在,请教我文件路径。如果我必须创建新文件文件夹,请教我在哪里制作。)

谢谢,

解决方法

看起来您需要一个自定义字段,因为 total_salary 未映射到列。为此,您需要添加一个类来计算它:

# app/fields/total_salary_field.rb

class TotalSalaryField < Administrate::Field::Base
  def total_salary
    # Perform calculation here
  end
end

然后做:

ATTRIBUTE_TYPES = {
  ...,total_salary: TotalSalaryField,...
}

这是自定义字段类型文档的链接:https://administrate-demo-prerelease.herokuapp.com/adding_custom_field_types

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。