November 02, 2026
Field::HasOne for has_one associations./uchi/api/:resource, with pagination, search, and sorting. It uses the same authentication as the admin UI by default; override Uchi::Api::ApplicationController to authenticate it differently.Repository.for_controller_name returns the repository with the given controller_name.Repository#find_all accepts an array of sort orders, applied in order.Field::BelongsTo is no longer sortable by default. Sorting by it failed with an SQL error, since the association isn't a column. Pass a lambda to sortable to sort by a column in the associated table.ActionResponse#turbo_stream yields a Turbo Stream builder to its block, as documented. Calling turbo_stream.remove(record) inside the block previously raised NameError.Field#reader accepts a block, e.g. reader { |record, field_name| ... }. It previously raised ArgumentError.