管理 gem - 如何在索引页上显示目标模型没有的属性作为列
Administrate gem - how to show attribute which target model does not have as column, on index page
我正在尝试显示模型没有的属性作为列。
例如,我想在用户索引仪表板上显示“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
没有映射到列。为此,您需要添加一个 class 来计算它:
# app/fields/total_salary_field.rb
class TotalSalaryField < Administrate::Field::Base
def total_salary
# Perform calculation here
end
end
然后做:
ATTRIBUTE_TYPES = {
...,
total_salary: TotalSalaryField,
...
}
这是自定义字段类型文档的 link:https://administrate-demo-prerelease.herokuapp.com/adding_custom_field_types
我正在尝试显示模型没有的属性作为列。
例如,我想在用户索引仪表板上显示“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
没有映射到列。为此,您需要添加一个 class 来计算它:
# app/fields/total_salary_field.rb
class TotalSalaryField < Administrate::Field::Base
def total_salary
# Perform calculation here
end
end
然后做:
ATTRIBUTE_TYPES = {
...,
total_salary: TotalSalaryField,
...
}
这是自定义字段类型文档的 link:https://administrate-demo-prerelease.herokuapp.com/adding_custom_field_types