Limited offer 60% off on your first year, for new customers. Applied automatically at checkout. See pricing

CRUD UI

Manage your records with ease

Create, view, edit and delete any record in your database through an interface your team will enjoy using. Point Uchi at a model and the screens are there.

Why you'll love it

Feels familiar from day one
Uchi uses your model names, attribute names and translations, so labels and validation messages match what your users already see in the rest of your app.
Grows with your app
Repositories are plain Ruby classes. Change the default sort order, avoid n+1 queries or decide how records are titled by overriding an ordinary method.
No DSL to learn
A resource is a Ruby class that lists its fields. If you know Rails, you already know how to set one up.
The right input for every field
Strings, text, numbers, dates, booleans, selects, files, images and associations each get a fitting form control and display, with validation errors shown right where they belong.

How CRUD works in the admin panel

Every model you want in the admin panel gets a repository: a plain Ruby class in app/uchi/repositories. Its fields method returns the attributes to expose as field objects, like Field::String, Field::Date, Field::BelongsTo or Field::HasMany.

From that list Uchi builds the index, show, new and edit pages, with a fitting input for every field type, and lets you delete records. Records are saved through ActiveRecord, so your model validations and callbacks run exactly as they do everywhere else in your app.

Implementation

A resource in a few lines of Ruby

Install the gem, add a repository for your model listing the fields you want to expose, and mount Uchi in your routes. That's all it takes to go from a model to a working admin.

Dig deeper

Everything you need to know, in the documentation.

Ready to build an awesome admin for your app?