aka reactive admin, Билдер, felix 4.0
status: prod / beta , ‣
- Берем активадмин 2) немного встряхиваем 3) йоба, json с аннотациями типов 4) и получаем прелестный современный поддерживаемый crud-интерфейс
Микро-фреймворк для rails и react, оставляющий самое лучшее из ActiveAdmin (с небольшими доработками) и добавляющий безграничную гибкость реакта
Реализует наиболее используемую часть API ActiveAdmin 1.2.1
Беку — беково, Фронту — фронтово (переносим view-слой на фронт, где ему и место)
Зачем: 1) уменьшение времени апдейта кода, гибкий современный фронт, простое добавление фич и кастомизация клиент-сайда на фронтовых технологиях, быстрая замена aa-контроллеров на rails+react. 2) Облегчение распила админки. 3) Никто не писал index-show-вьюшки на rails+react и не будет, АА проще и понятнее 4) при переписывании таких вьюх на rails код становится менее выразительным и более многословным 5) сделать доклад на конференции
class PackagesController < ReactiveAdmin::Base
object Admin::LeadPackage # Вместо ActiveAdmin.register ...
scope(:all) {|s| s.all}
scope(:pending) {|s| s.pending}
filter(:slug) # будет отображен подходящий реактовый фильт
action_item :move only: :show { resource.move! }
collection_action :transpose # PUT be default
index do
columns :name, :agent
actions :edit, :open, :move
end
show do
rows :name, :agent, :delivery
end
end
см так же фронт ⤵︎
см пример json-ответа ↗︎
см ReactiveAdmin в миниатюре ↗︎
ActiveAdmin.register
заменяется на
class *Controller < Admin::ReactiveAdminController
menu
, layout
не используются
? scoped_collection
заменяется на default_subject
(подумать)
в отличии от felix-rails контроллеров, вместо default_subject
по прежнему используется scoped_collection
→ детали формирования resource и collection, а так же авторизации запросов (цепочки вызовов до collection) — документация по Re:activeAdmin
в отличии от felix rails используется config.per_page вместо PAGE_SIZE
добавить ::
перед именами используемых классов
содержимое controller do
выносится наружу
arbre: большая часть методов генерирует json с минимумом презентационной специфики
ещё часть методов просто убирается, часть нужно заменять руками на jsx на стороне фронта, есть так же инициатива по транспиляции arbre в jsx+rails api