зеркало из
https://github.com/rs-pro/activeadmin-quill_editor.git
synced 2026-08-28 15:36:17 +03:00
- Update ActiveAdmin from beta16 to beta20 - Drop support for Rails 6.1, 7.0, 7.1 and ActiveAdmin 2.x/3.x - Minimum requirements now: Rails 7.2+, Ruby 3.2+, ActiveAdmin 4.x - Reduce CI jobs from 22+ to 6 (2 gemfiles × 3 Ruby versions) - Clean up obsolete documentation files Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4.3 KiB
4.3 KiB
Setting Up an ActiveAdmin 4 Extension Gem (Combustion)
This guide mirrors the working setup used in this repo: ActiveAdmin 4.0.0.beta20 + Tailwind CSS v4 + Combustion test app.
1. Gem Dependencies
# Gemfile
source "https://rubygems.org"
gemspec
gem "rails", "~> 7.2"
gem "activeadmin", "4.0.0.beta20"
gem "sqlite3"
gem "puma"
gem "importmap-rails", "~> 2.0"
gem "propshaft"
gem "tailwindcss-rails", "~> 4.4.0"
group :development, :test do
gem "combustion", "~> 1.3"
gem "rspec-rails"
gem "capybara"
end
2. Combustion Test App
bundle exec combust
3. config.ru Loading Order
# config.ru
require "rubygems"
require "bundler"
Bundler.setup(:default, :development)
require "combustion"
Combustion.initialize! :active_record, :action_controller, :action_view do
config.load_defaults Rails::VERSION::STRING.to_f if Rails::VERSION::MAJOR >= 7
end
require "importmap-rails"
require "active_admin"
require "activeadmin_your_feature"
run Combustion::Application
4. Internal App Structure
cd spec/internal
mkdir -p app/admin app/assets/{builds,config,stylesheets} app/javascript
5. ActiveAdmin Setup
# spec/internal/config/initializers/active_admin.rb
ActiveAdmin.setup do |config|
config.site_title = "Test App"
config.authentication_method = false
config.current_user_method = false
end
6. Tailwind Input + Config
/* spec/internal/app/assets/stylesheets/active_admin.tailwind.css */
@import "tailwindcss";
@config "../../../tailwind-active_admin.config.mjs";
/* Import your gem CSS if needed */
@import "your_gem/css";
// spec/internal/tailwind-active_admin.config.mjs
import { execSync } from "child_process";
import activeAdminPlugin from "@activeadmin/activeadmin/plugin";
const activeAdminPath = execSync("bundle show activeadmin", {
encoding: "utf-8"
}).trim();
export default {
content: [
`${activeAdminPath}/vendor/javascript/flowbite.js`,
`${activeAdminPath}/plugin.js`,
`${activeAdminPath}/app/views/**/*.{arb,erb,html,rb}`,
"./app/admin/**/*.{arb,erb,html,rb}",
"./app/views/**/*.{arb,erb,html,rb}",
"./app/javascript/**/*.js",
"../../app/assets/**/*.{js,css}"
],
darkMode: "selector",
plugins: [activeAdminPlugin]
};
7. Tailwind Build Tasks
# spec/internal/lib/tasks/active_admin.rake
namespace :active_admin do
desc "Build Active Admin Tailwind stylesheets"
task build: :environment do
command = [
Rails.root.join("bin/tailwindcss").to_s,
"-i", Rails.root.join("app/assets/stylesheets/active_admin.tailwind.css").to_s,
"-o", Rails.root.join("app/assets/builds/active_admin.css").to_s,
"-m"
]
system(*command, exception: true)
end
end
8. Tailwind Binstub
bundle binstubs tailwindcss-ruby --force
9. JS Entry
// spec/internal/app/javascript/active_admin.js
import "@activeadmin/activeadmin";
import "your_gem";
10. package.json (internal)
{
"name": "internal",
"private": true,
"scripts": {
"build:js": "node esbuild.config.js",
"build:css": "bundle exec rake active_admin:build",
"build": "npm run build:js && npm run build:css"
},
"devDependencies": {
"@activeadmin/activeadmin": "^4.0.0-beta20",
"esbuild": "^0.24.2"
}
}
11. ActiveAdmin 4.0.0.beta20 Notes (from upgrade guide)
Version Requirements:
- Rails 7.2+ (Rails 7.0 and 7.1 are no longer supported)
- Ruby 3.2+ (Ruby 3.0 and 3.1 are no longer supported)
Breaking Changes from earlier v4 betas:
_site_header.html.erbcontainer class changed fromstickytofixed.active_admin.html.erbadds thept-16utility class.- Tailwind v4 requires
@import "tailwindcss"+@config. - jQuery and jQuery UI removed;
columnsandtabscomponents removed. - Replace
default_main_contentwithrender "show_default". - Replace
as: :datepickerwithas: :date_picker. - Replace
active_admin_commentswithactive_admin_comments_for(resource). - Replace
attributes_tablewithattributes_table_for(resource)in sidebars.
New in beta20:
- Parent menu item linking support
- Improved comments pagination styling
- Better vertical spacing for has-many forms
- Pointer cursor restored on eligible buttons
- Various accessibility improvements