后端【免费下载链接】activeadminThe administration framework for Ruby on Rails applications.项目地址https://gitcode.com/gh_mirrors/ac/activeadmin点击查看免费下载本指南以 ActiveAdminRuby on Rails 应用的管理框架的config/initializers/active_admin.rb初始化文件为核心系统讲解认证方法、站点标题、国际化、命名空间、加载路径、资源评论、工具导航与页脚等全局配置项的用法与底层原理。阅读后你将掌握如何在应用级与命名空间级精准定制 ActiveAdmin 行为并理解这些配置在框架源码中的落点从而安全地应用到生产项目中。配置文件入口与 setup 机制ActiveAdmin 的所有通用配置都集中在应用初始化文件config/initializers/active_admin.rb中通过ActiveAdmin.setup do |config|块完成。安装 ActiveAdmin 时由 install generator 生成该文件其中带有大量注释说明每项配置的默认值和使用示例是日常查阅配置项的最佳起点。从源码结构看配置体系分为两层应用级设置ApplicationSettings见 lib/active_admin/application_settings.rb存放default_namespace、load_paths、localize_format、filter_attributes等面向整个应用的配置。命名空间级设置NamespaceSettings见 lib/active_admin/namespace_settings.rb存放site_title、current_user_method、authentication_method、route_options、default_per_page等可被每个命名空间单独覆盖的配置。两者的注册机制都在 settings_node.rb 中实现register(name, value)通过class_attribute声明配置属性并赋予默认值。Application类用method_missing把config.xxx ...的赋值转发到对应的设置节点见 application.rb而Namespace类同样通过method_missing将命名空间块内的赋值委托给命名空间自己的设置副本见 namespace.rb。认证配置强制登录与当前用户ActiveAdmin 依赖两个配置项来完成认证流程authentication_method控制器用来强制认证的方法一般通过 before_action 调用。current_user_method用于获取当前登录用户的方法。config.authentication_method :authenticate_admin_user! config.current_user_method :current_admin_user使用 Devise 安装时生成器会自动填入与 AdminUser 模型匹配的方法名:authenticate_admin_user!与:current_admin_user见 install 模板。这两个方法通常定义在你的ApplicationController中。如果希望完全关闭认证将两者都设为falseconfig.authentication_method false config.current_user_method false从 namespace_settings.rb 可以看到两者的默认值均为false也就是说只有在初始化文件中显式配置后认证才会生效。站点标题Site Title 选项每个页面的菜单栏左侧都会显示站点标题site title默认由生成器设置为应用名如Rails.application.class.name.split(::).first.titlecase。你可以通过以下配置完全自定义config.site_title My Admin Site config.site_title_link / config.site_title_image site_image.png config.site_title_image https://www.google.com/images/logos/google_logo_41.png config.site_title_image -(context) { context.current_user.company.logo_url }要点说明site_title支持字符串也支持Symbol或Proc见 namespace_settings.rb 中注册时声明的:string_symbol_or_proc类型动态标题场景下很有用。site_title_link控制点击标题跳转的 URL。site_title_image可以是相对路径、绝对 URL也可以是接收视图上下文的Proc——上面第三个示例展示了根据当前登录用户动态取公司 Logo 的典型多租户用法。国际化I18n与日期时间本地化语言包与自定义翻译ActiveAdmin 自带大量语言翻译文件全部位于仓库的 config/locales/ 目录包含en.yml、zh-CN.yml、ja.yml、fr.yml等 40 余种语言。要翻译成新语言或修改现有翻译只需把 config/locales/en.yml 复制到你自己应用的config/locales目录并修改即可。两点注意事项ActiveAdmin 不提供分页组件 kaminari 的翻译需要额外引入kaminari-i18ngem 才能让分页文案跟随 locale 变化。仓库自带的 kaminari 分页视图模板位于 app/views/active_admin/kaminari/供你参考其渲染结构。若使用 Devise 做认证可引入devise-i18ngem 来获得其他 locale 的认证相关翻译如登录、找回密码页文案。日期与时间的本地化格式ActiveAdmin 默认使用:long作为日期和时间的本地化格式对应 Rails I18n 中date.formats/time.formats的长格式。你可以覆盖为其他格式config.localize_format :short该配置在 application_settings.rb 中注册默认值:long。可运行bin/rails runner puts I18n.t(date.formats)查看你的应用中可用的格式键。命名空间组织资源的核心单元默认命名空间与路由在app/admin/posts.rb中注册资源时默认会载入admin命名空间# app/admin/posts.rb ActiveAdmin.register Post do # ... end此时 Post 资源在/admin/posts下访问。从 namespace.rb 的注释和实现可以看到命名空间决定了路由前缀route_prefix、控制器模块名module_name例如Admin::PostsController以及该命名空间下的菜单。注册到:root命名空间namespace: false则意味着不启用命名空间资源直接挂在/posts下。默认命名空间本身也可修改在初始化文件中设置config.default_namespace :super_admin即可而 application.rb 中的register方法会从options.fetch(:namespace) { default_namespace }决定资源归属。每个命名空间独立配置每个命名空间持有自己的设置副本继承自应用配置SettingsNode.build(application.namespace_settings)见 namespace.rb。因此可以用config.namespace(name)块为不同命名空间设置不同标题ActiveAdmin.setup do |config| config.site_title My Default Site Title config.namespace :admin do |admin| admin.site_title Admin Site end config.namespace :super_admin do |super_admin| super_admin.site_title Super Admin Site end end原则上setup 块中可用的每一项配置都能在命名空间级别单独覆盖。route_options多租户与子域名挂载多租户应用常常希望多个命名空间挂载到同一路径借助route_options的路由约束即可实现config.namespace :site_1 do |admin| admin.route_options { path: :admin, constraints: -(request){ request.domain site1.com } } end config.namespace :site_2 do |admin| admin.route_options { path: :admin, constraints: -(request){ request.domain site2.com } } end如果希望命名空间挂载在子域名而非路径下同样使用route_optionsconfig.namespace :admin do |admin| admin.route_options { path: , subdomain: admin } end这些route_options最终会透传给 router.rb 中的router.namespace namespace.name, **namespace.route_options.dup调用直接作用于 Rails 路由定义。注意:super_admin未设置route_options时其默认值为{}见 namespace_settings.rb。加载路径改变管理文件的存放目录默认情况下ActiveAdmin 的资源配置文件放在app/admin/目录下。这个默认路径注册在 application_settings.rb[File.expand_path(app/admin, Rails.root)]。你可以在初始化文件中改变它ActiveAdmin.setup do |config| config.load_paths [File.join(Rails.root, app, ui)] end也可以加载多个目录比如不同角色使用不同目录config.load_paths [ File.join(Rails.root, app, admin), File.join(Rails.root, app, cashier) ]从 application.rb 可以看到load!会遍历load_paths下所有**/*.rb文件并逐个加载同时 ActiveAdmin 会把这些目录从 Rails 的autoload_paths和eager_load_paths中移除避免常量重复加载见 application.rb。资源评论Comments配置ActiveAdmin 默认启用资源评论功能页面底部可对任意资源发表评论评论模型实现见 lib/active_admin/orm/active_record/comments.rb。可以在三个层级控制# 针对整个应用 ActiveAdmin.setup do |config| config.comments false end # 针对某个命名空间 ActiveAdmin.setup do |config| config.namespace :admin do |admin| admin.comments false end end # 针对某个资源 ActiveAdmin.register Post do config.comments false end评论相关的其他配置# 修改评论资源注册名 config.comments_registration_name AdminComment # 修改评论排序方式与排序列 config.comments_order created_at ASC # 禁用评论索引页的菜单项 config.comments_menu false # 自定义评论菜单 config.comments_menu { parent: Admin, priority: 1 }同时记得在需要显示评论的位置放置active_admin_comments_for(resource)comments_menu的哈希形式parent、priority与 menu.rb 中菜单项的构建方式一致支持挂到指定父菜单并按优先级排序。工具导航Utility Navigation定制页面右上角默认展示当前用户信息和登出链接这部分被称为 utility navigation。它本质上也是一个普通菜单因此可以完全替换为你自己的菜单ActiveAdmin.setup do |config| config.namespace :admin do |admin| admin.build_menu :utility_navigation do |menu| menu.add label: ActiveAdmin.info, url: https://www.activeadmin.info, html_options: { target: _blank } admin.add_current_user_to_menu menu admin.add_logout_button_to_menu menu end end end其中build_menu会在菜单构建前把块中定义的条目注入对应菜单见 namespace.rb而add_current_user_to_menu与add_logout_button_to_menu是命名空间提供的辅助方法用于恢复当前用户 登出链接的默认行为logout_link_path配置默认:destroy_admin_user_session_path则控制登出链接指向。页脚定制默认情况下每个页面底部都会显示 Powered by ActiveAdmin。可以覆盖成业务相关文案config.footer MyApp Revision v1.3更多可探索的全局配置除了本指南重点讲解的内容初始化文件模板中还注释了大量常用配置可按需启用分页config.default_per_page 30、config.max_per_page 10_000默认值定义于 namespace_settings.rb。过滤器config.filters true、config.include_default_association_filters true。批处理操作config.batch_actions true。CSV 导出config.csv_options { col_sep: ; }。下载链接config.download_links false或[:xml, :pdf]。面包屑config.breadcrumb false。敏感属性过滤config.filter_attributes [:encrypted_password, :password, :password_confirmation]默认值见 application_settings.rb。控制器过滤器config.before_action :do_something_awesome会作用于所有 ActiveAdmin 控制器实现见 application.rb。这些配置与本文介绍的所有设置遵循同一套规则在 setup 块顶层设置即为全局默认值在config.namespace块内设置则只影响对应命名空间。赞分享后端【免费下载链接】activeadminThe administration framework for Ruby on Rails applications.项目地址https://gitcode.com/gh_mirrors/ac/activeadmin点击查看免费下载相关推荐Naive UI Config Provider 全局化配置完全指南主题、国际化、命名空间与组件尺寸Naive UI Config Provider 全局化配置完全指南主题、国际化、命名空间与组件尺寸 n config provider 是 Naive UI前端UI组件DeBERTa-v3-large社区贡献完全指南如何参与模型改进和代码开发DeBERTa v3 large社区贡献完全指南如何参与模型改进和代码开发 欢迎来到DeBERTa v3 large社区贡献指南 作为当前最先进的自然语React-i18next 多命名空间管理国际化策略终极指南React i18next 多命名空间管理国际化策略终极指南 React i18next 是一个强大的国际化解决方案专为React应用程序设计基于i18n前端国际化上一篇终极指南Awesome D3未来5大发展趋势与项目路线图深度解析下一篇2026 年 5 月 Triton 社区例会纪要TileLens 可视化分析、Windows 插件扩展与 Block Pointer 去留之争创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
