Created by: gracewashere
Changes:
- Use explicit ruby arrays for
TABLE_ATTRIBUTES
andFORM_ATTRIBUTES
- Remove the generated
READ_ONLY_ATTRIBUTES
, which was not used by Administrate and may have been confusing.
Before
require "administrate/base_dashboard"
class ProductDashboard < Administrate::BaseDashboard
READ_ONLY_ATTRIBUTES = [
:id,
:created_at,
:updated_at,
]
# ATTRIBUTE_TYPES
# a hash that describes the type of each of the model's fields.
#
# Each different type represents an Administrate::Field object,
# which determines how the attribute is displayed
# on pages throughout the dashboard.
ATTRIBUTE_TYPES = {
id: Field::Number,
name: Field::String,
price: Field::Number.with_options(decimals: 2),
description: Field::String,
image_url: Field::String,
created_at: Field::DateTime,
updated_at: Field::DateTime,
slug: Field::String,
}
# TABLE_ATTRIBUTES
# an array of attributes that will be displayed on the model's index page.
#
# By default, it's limited to four items to reduce clutter on index pages.
# Feel free to remove the limit or customize the returned array.
TABLE_ATTRIBUTES = ATTRIBUTE_TYPES.keys.first(4)
# SHOW_PAGE_ATTRIBUTES
# an array of attributes that will be displayed on the model's show page.
SHOW_PAGE_ATTRIBUTES = ATTRIBUTE_TYPES.keys
# FORM_ATTRIBUTES
# an array of attributes that will be displayed
# on the model's form (`new` and `edit`) pages.
FORM_ATTRIBUTES = ATTRIBUTE_TYPES.keys - READ_ONLY_ATTRIBUTES
end
After
require "administrate/base_dashboard"
class ProductDashboard < Administrate::BaseDashboard
# ATTRIBUTE_TYPES
# a hash that describes the type of each of the model's fields.
#
# Each different type represents an Administrate::Field object,
# which determines how the attribute is displayed
# on pages throughout the dashboard.
ATTRIBUTE_TYPES = {
id: Field::Number,
name: Field::String,
price: Field::Number.with_options(decimals: 2),
description: Field::String,
image_url: Field::String,
created_at: Field::DateTime,
updated_at: Field::DateTime,
slug: Field::String,
}
# TABLE_ATTRIBUTES
# an array of attributes that will be displayed on the model's index page.
#
# By default, it's limited to four items to reduce clutter on index pages.
# Feel free to add, remove, or rearrange items.
TABLE_ATTRIBUTES = [
:id,
:name,
:price,
:description,
]
# SHOW_PAGE_ATTRIBUTES
# an array of attributes that will be displayed on the model's show page.
SHOW_PAGE_ATTRIBUTES = ATTRIBUTE_TYPES.keys
# FORM_ATTRIBUTES
# an array of attributes that will be displayed
# on the model's form (`new` and `edit`) pages.
FORM_ATTRIBUTES = [
:name,
:price,
:description,
:image_url,
:slug,
]
end