-
Notifications
You must be signed in to change notification settings - Fork 2.3k
List
Section used for the index view.
It inherits its configuration from the base
section.
RailsAdmin.config do |config|
config.total_columns_width = 1000
end
Also see how to show all columns on one page in a horizontally-scrolling table.
By default, columns have a max-width
of 120px, and no min-width
. While there does not appear to be fine-grained controls for max-/min-width, you can specify a fixed width in pixels for individual columns:
RailsAdmin.config do |config|
config.model 'Player' do
list do
field :created_at do # (1)
column_width 300
end
end
end
end
You can configure the default number of rows rendered per page:
RailsAdmin.config do |config|
config.default_items_per_page = 50
end
You can also configure it per model:
RailsAdmin.config do |config|
config.model 'Team' do
list do
items_per_page 100
end
end
end
By default, rows are sorted by the field id
in reverse order
You can change default behavior with use two options: sort_by
and sort_reverse
RailsAdmin.config do |config|
config.model 'Player' do
list do
sort_by :name
field :name do
sort_reverse false
end
end
end
end
Default visible filters. Must be a list of fields name.
RailsAdmin.config do |config|
config.model 'Team' do
list do
filters [:name, :manager]
# Manually enable/disable per field
field :name do
filterable true
end
field :manager do
filterable true
end
end
end
end
- You can make a column non-sortable by setting the sortable option to false (1)
- You can change the column that the field will actually sort on (2)
belongs_to
associations:
- will be sorted on their label if label is not virtual (:name, :title, etc.)
- otherwise on the foreign_key (:team_id)
- you can also specify a column on the targetted table (see example) (3)
RailsAdmin.config do |config|
config.model 'Player' do
list do
field :created_at do # (1)
sortable false
end
field :name do # (2)
sortable :last_name # imagine there is a :last_name column and that :name is virtual
end
field :team do # (3)
# Will order by players playing with the best teams,
# rather than the team name (by default),
# or the team id (dull but default if object_label_method is not a column name)
sortable :win_percentage
# if you need to specify the join association name:
# (See #526 and http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#label-Table+Aliasing)
sortable {Team => :win_percentage}
# or
sortable {:teams => :win_percentage}
# or
sortable "teams.win_percentage"
end
end
end
end
By default, dates and serial ids are reversed when first-sorted ('desc' instead of 'asc' in SQL). If you want to reverse (or cancel it) the default sort order (first column click or the default sort column):
RailsAdmin.config do |config|
config.model 'Team' do
list do
field :id do
sort_reverse false # will sort id increasing ('asc') first ones first (default is last ones first)
end
field :created_at do
sort_reverse false # will sort dates increasing ('asc') first ones first (default is last ones first)
end
field :name do
sort_reverse true # will sort name decreasing ('dec') z->a (default is a->z)
end
end
end
end
- You can make a column non-searchable by setting the searchable option to false (1)
- You can change the column that the field will actually search on (2)
- You can specify a list of column that will be searched over (3)
Belongs_to associations:
- will be searched on their foreign_key (:team_id)
- or on their label if label is not virtual (:name, :title, etc.)
- you can also specify columns on the targeted table or the source table (see example) (4)
- will not be searched unless
queryable
is set totrue
RailsAdmin.config do |config|
config.model 'Player' do
list do
field :created_at do # (1)
searchable false
end
field :name do # (2)
searchable :last_name
end
# OR
field :name do # (3)
searchable [:first_name, :last_name]
end
field :team do # (4)
queryable true
searchable [:name, :id]
# eq. to [Team => :name, Team => :id]
# or even [:name, Player => :team_id] will search on teams.name and players.team_id
# if you need to specify the join association name:
# (See #526 and http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html => table_aliasing)
searchable [{:teams => :name}, {:teams => :id}]
# or
searchable ["teams.name", "teams.id"]
end
end
end
end
For associations with multiple filterable columns configured, a record with any filterable column matching the filter string will be returned. There is not currently a way to split out association columns into separate filters. (E.g. if you filter players by "Team: 5", then any players on team #5 plus any players whose team name contains a "5" will be returned.)
Searchable definitions will be used for searches and filters. You can independently deactivate querying (search) or filtering for each field with:
field :team do
searchable [:name, :color]
queryable true # default except for associations
filterable false
end
This allows to display a configurable scoped list view.
First will be the default, nil means no scope (also it is possible to disable non-scoped index)
RailsAdmin.config do |config|
config.model 'Team' do
list do
scopes [:not_cart, :cart, nil]
end
end
end
It allows to avoid count(*)
query which take a lot of resources on big tables.
Pagination includes only: next
/prev
buttons.
Default value is false
.
RailsAdmin.config do |config|
config.model 'Team' do
list do
limited_pagination true
end
end
end
You can make fields stick to the left, without affected by the horizontal scrolling.
RailsAdmin.config do |config|
config.model 'Player' do
list do
configure :id do
sticky true
end
configure :name do
sticky true
end
end
end
end
xref https://github.com/sferik/rails_admin/wiki/List-view-table-styling