Grouped table
How this page is built
the gem renders it — this is all you write
Grouping is a render-time arrangement, like the layout. Add group_by: :publisher — the gem orders by the group key, splits the rows into collapsible groups (chevron in the header) and shows a per-group count. With 120 books, groups start collapsed beyond config.group_collapse_threshold (default 50), opening only the first; the open ones live in ?open=, so a half-expanded view is copy-pasteable.
app/views/groups/index.html.erb
<%= crud_collection @books, group_by: :publisher %> <%# belongs_to, enum or a column %>
Read more: Grouping
| Cover | Title | Author names | Genre | Price | Publisher | Active | ||
|---|---|---|---|---|---|---|---|---|
|
|
||||||||
| Tor Books 1 | ||||||||
![]() |
The Dispossessed Ocean 67 | Martha Wells | Fiction | 40.62 € | Tor Books | ✗ | ||
| Ace 1 | ||||||||
![]() |
The Hidden Signal 85 | Becky Chambers, Liu Cixin, and Margaret Atwood | Fiction | 20.30 € | Ace | ✗ | ||
| Gollancz 1 | ||||||||
![]() |
The Ancient Tower 11 | Ted Chiang, Ann Leckie, and Frank Herbert | Fiction | 40.82 € | Gollancz | ✗ | ||
| Vintage 1 | ||||||||
![]() |
The Broken Mirror 96 | Stanisław Lem | Fiction | 34.38 € | Vintage | ✗ | ||



