首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

支持页面重载的Rails 6 ActiveAdmin动态下拉选择

Rails 6是一种用于开发Web应用程序的开源框架,它基于Ruby语言。ActiveAdmin是Rails的一个开源插件,可以帮助开发者快速构建后台管理界面。

动态下拉选择是指在选择一个下拉菜单选项后,另一个下拉菜单的选项会随之发生变化。这种功能可以通过Rails 6的ActiveAdmin插件来实现,具体步骤如下:

  1. 在Gemfile文件中添加ActiveAdmin的gem依赖:
代码语言:txt
复制
gem 'activeadmin'
  1. 执行bundle install命令安装依赖。
  2. 生成ActiveAdmin的配置文件和初始化文件:
代码语言:txt
复制
rails generate active_admin:install
  1. 生成需要的资源文件(例如Product资源):
代码语言:txt
复制
rails generate active_admin:resource Product
  1. 在生成的资源文件中定义动态下拉选择的逻辑。例如,如果想在选择一个产品分类后,动态更新产品品牌的选项,可以在app/admin/product.rb文件中添加如下代码:
代码语言:txt
复制
form do |f|
  f.inputs 'Product Details' do
    f.input :category, collection: Category.all.map{ |c| [c.name, c.id] }, prompt: 'Select category', input_html: { id: 'category_select' }
    f.input :brand, collection: proc { |product| Brand.where(category_id: product.category_id).map{ |b| [b.name, b.id] } }, prompt: 'Select brand', input_html: { id: 'brand_select' }
  end
  f.actions
end

# Ajax request to update brand options when category selection changes
script :javascript do
  <<-JS
    $(document).ready(function() {
      $('#category_select').on('change', function() {
        var categoryId = $(this).val();
        var url = '/admin/brands/' + categoryId + '/options'; // Replace with the actual URL to fetch brand options
        $.ajax({
          url: url,
          method: 'GET',
          success: function(data) {
            var options = data.map(function(option) {
              return '<option value="' + option[1] + '">' + option[0] + '</option>';
            });
            $('#brand_select').html(options.join(''));
          }
        });
      });
    });
  JS
end

上述代码中,collection参数用于指定下拉菜单的选项,prompt参数用于设置默认的提示选项,input_html参数用于设置下拉菜单的HTML属性。通过jQuery的ajax方法,监听第一个下拉菜单(category)的变化,并发送异步请求获取动态更新的第二个下拉菜单(brand)的选项。

  1. 创建一个路由用于处理动态更新品牌选项的请求。在config/routes.rb文件中添加如下代码:
代码语言:txt
复制
namespace :admin do
  resources :brands, only: [] do
    get 'options', on: :member
  end
end
  1. 在app/controllers/admin/brands_controller.rb文件中定义options动作来处理请求并返回动态更新的品牌选项:
代码语言:txt
复制
class Admin::BrandsController < Admin::BaseController
  def options
    category = Category.find(params[:id])
    brands = category.brands.pluck(:name, :id)
    render json: brands
  end
end
  1. 在界面中使用动态下拉选择。在ActiveAdmin的产品表单中,调用定义的动态下拉选择方法:
代码语言:txt
复制
form do |f|
  f.inputs 'Product Details' do
    f.input :category, collection: Category.all.map{ |c| [c.name, c.id] }, prompt: 'Select category', input_html: { id: 'category_select' }
    f.input :brand, collection: proc { |product| Brand.where(category_id: product.category_id).map{ |b| [b.name, b.id] } }, prompt: 'Select brand', input_html: { id: 'brand_select' }
  end
  f.actions
end

以上就是使用Rails 6 ActiveAdmin实现支持页面重载的动态下拉选择的步骤。通过上述代码,用户在选择产品分类后,品牌下拉菜单的选项会实时更新。具体的优势在于提升了用户体验和操作效率。

推荐的腾讯云产品:腾讯云服务器(云服务器),产品介绍链接地址:https://cloud.tencent.com/product/cvm

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

将gitlab备份到群辉nas操作

二、群晖中操作 1、进入到套件中心,并搜索“Active Backup for Business” 2、安装套件 3、注册账户并激活 激活时如遇到页面无法跳转等情况,请选择离线激活即可 三、配置备份...#gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" #gitlab备份所保留时长,默认为7天 #Limit backup lifetime...to 7 days - 604800 seconds #gitlab_rails['backup_keep_time'] = 604800 gitlab-ctl...中,并点击“文件服务器” (2)选择“rsync服务器” (3)填写服务器信息,点完成即可,弹出页面中可以直接添加任务,或稍后添加任务 (4)添加备份任务 (6)填写任务名、存放路径 以及 启用计划 (7)点击下一步即可,可以选择立即备份一次或按照约定时间备份 (8)完成 (1)建议备份后找一个环境测试一下

70320

友好Bootstrap,让你越码越“上瘾”

你是否使用过智能手机浏览真正网页? 你是否因为自己作为后端程序员而不能开发出较漂亮页面? 你是否开发过能够同时适应不同分辨率屏幕页面?...2010 年6 月,为了提高内部协调性和工作效率,Twitter 公司设计师Mark Otto 和Jacob Thornton 合作开发了Bootstrap,它是由动态CSS 语言Less 写成。...Bootstrap 包含组件如下:字体图标、下拉菜单、按钮组、按钮式下拉菜单、输入框组、导航、导航条、分页、标签、徽章、巨幕、页头、缩略图、提示框、进度条、媒体对象、列表组、面板、对话框等。...同时Bootstrap 也提供较为丰富jQuery插件,比如过渡效果、对话框、下拉菜单、滚动监听、标签页和提示框等一系列插件,在后续文章中会逐步讲解其用法。...Sass:这是Bootstrap 从Less 到Sass 源码移植项目,用于快速地在Rails、Compass或只针对Sass 项目中引入。 参考地址如下。

2K20
  • 拖拉拽做游戏?轻松打造个人掌机世界 | 开源日报 No.176

    该项目主要功能、关键特性、核心优势包括: 列出了大量 ReactJS 相关面试问题和答案 提供了对 React 基础知识系统学习资源 可以帮助用户准备编码面试,提升就业竞争力 rails/railshttps...://github.com/rails/rails Stars: 54.3k License: MIT rails 是一个包含一切创建基于数据库 Web 应用程序所需内容 web 应用程序框架,...Rails 还附带了许多其他功能和库,如邮件发送、接收库等。可独立使用或与 Rails 一起使用。安装简便,并有丰富文档和指南可供参考。...简洁语法 常规面向对象特性(例如类、方法调用) 高级面向对象特性(例如混入、单例方法) 运算符重载 异常处理 迭代器和闭包 垃圾回收机制 对象文件动态加载(在某些架构上) 高度可移植性(适用于许多类...支持多平台构建,并默认生成 SBOMs(Software Bill of Materials)。 包含对 Kubernetes 应用程序简单 YAML 模板支持

    11610

    vue-cli

    因为数量太多了,而且缺少评分机制,大部分情况我们不可能一个个去查看,很难从中选择符合需求项目(当然你带着明确目的,且目标范围非常小,可能比较有用)。...’前端工程化’, 配合Turbolink可以让传统后端渲染页面拥有不亚于单页应用用户体验… 当初 Rails 给我带来各种震撼还历历在目, Ruby China 社区也是国内最好社区之一....进行扩展) 中(可以配置 babel,postcss,Typescript); 提供了 Node API; 支持插件扩展文件类型 多页面 支持 - 支持 适用范围 Vue 组件第一公民。...memfs 兼容 Node fs API 内存文件系统 数据检验 @hapi/joi JSON schema 校验 调试 debug: 这是一个 debug 日志利器, 支持通过环境变量或动态设置来确定是否需要输出...这两个库是 vue-cli 插件重要成员 webpack-dev-server: webpack 开发服务器,支持代码热重载,错误信息展示,接口代理等等 webpack-bundle-analyzer

    3.1K10

    k3cloud开发实例

    选择插件界面点击浏览: 选择编译好组件: 勾选插件,确定返回 确定并保存单据。...               页面关闭前 初始化方法 OnInitialize 该插件负责动态表单实例初始化,包括单据Global参数(当然有些参数仅仅在使用时候才获取),动态初始化控件数据源等。...比如,批量修改界面初始化时将允许修改字段加入到下拉列表。...在BOS平台中,架构设计上支持集成服务,所有操作都是设计有服务接口,二次开发可以很容易将所有操作发布成服务供外部系统调用。这样对外部系统来说,调用服务保存将会很容易。但如何保证数据正确性?...增加下拉列表,显示单据头所有字段; a)        新建(打开)收货单插件工程(MyDev.K3.SCM.Stock.Business.PlugIn); b)        重载OnInitialize

    4.1K12

    Bootstrap运用终极指南

    预样式组件: Bootstrap程序还提供用于下拉菜单、导航条、弹窗和许多其它功能预样式组件。 6....还有一个Saas版本,它是Bootstrap从Less移植到Sass源码移植项目。如果你想快速地在Rails、Compass或仅支持Sass项目中使用Bootstrap,那么这个版本是不二之选。...blueimp Gallery是一个使用Bootstrap模态弹窗,支持触摸、响应图片库。 6.Bootstrap Lightbox是一个基于Bootstrap大图预览插件。...Bootstrap Multiselect是一个用于UIjQuery插件,它使用具有多个属性选择输入,并使其以带复选框下拉框形式出现。 37....6.WrapBootstrap是一个提供高级Bootstrap模板和主题市场,提供了从电子商务网站到登陆页面的所有主题和模板。

    4.1K11

    不是 Ruby,而是你数据库

    更实际情况是:几年前我为了修复一个 N+1 查询而加入 User.active.includes(:roles) 动态选择它认为你需要内容。...然而,Rails 魔力使其从此开始使用这一特性。每次页面加载都会导致大约 2 秒钟数据库查询,占用数据库服务器上所有 CPU 和 IO。 当然,这是个愚蠢错误。...我不需要将世界上 195 个国家存储在数据库中,并在显示国家下拉列表时加入。只需硬编码或在启动时输入配置读取。见鬼,也许你电子商务网站整个产品目录可以是一个单独 YAML 启动时读取?...大多数都是合理理由,除了最后一个:这是选择 Rails 一个可怕理由。...[3] 一个快速 grep:超过 9000 个类,超过 33000 个方法;不包括所有神奇动态方法,比如围绕数据库模型方法。这还不包括 rails 本身附带 70 多个依赖项。

    12830

    WordPress主题Siren二开美化版

    最后更新版本修改,就摘几条重要地方来说下吧…… 主题修改 任何页面背景头图可以选择使用随机图片API显示,比如 漫月API PC 端首页博主描述,可以选择使用“一言”代替,由 Hitokoto...注意: 不支持调用动态 URL 随机图 API ,仅支持伪静态 URL ,因为本主题会在 URL 结尾添加动态随机数以防止随机图重复。...更新日志 2018.01.08 修复某些浏览器点击回复别人评论时,页面滑动错误;点击回复不再需要下拉页面找输入框了 修复发布版本 Live2D 无法启动问题 2018.01.09 修正友链模板中默认头像图片路径...修复多项 PJAX 重载插件函数报错停止运行 BUG 2018.11.30 梳理去除部分代码 添加一个新“说说”页面和功能,可自行开启或关闭 2019.02.10 添加“登录以回复”按钮外观 社交选项更新...) PJAX 重载功能 修复开启 PJAX 后,使用浏览器返回功能返回上一页时,N 个功能没有加载问题 2019.04.04 替换评论头像服务器,更换为 V2EX 主题已支持 WordPress 5.1.1

    3.9K30

    【Linux系列】CentOS-7下GitLab安装部署教程

    在GitLab上可以实现完整CI(持续集成)、CD(持续发布)流程。而且还提供了免费使用Plan,以及免费可以独立部署社区版本 ,地址。...sudo firewall-cmd --add-service=ssh --permanent & sudo firewall-cmd --add-service=http --permanent # 重载防火墙规则...下载指定版本 gitlab,可以在清华大学镜像站去选择:地址 $ wget http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce...@163.com' gitlab_rails['smtp_password'] = 'yourpasswd' gitlab_rails['smtp_domain'] = 'smtp.163.com' gitlab_rails...在指定版本中删除rb deploy-page 安装部署页面 diff-config 将用户配置与包可用配置进行比较 remove-accounts 删除所有用户和组 upgrade 升级 service-list

    2.1K11

    OpenHarmony 4.0 Release发布,OpenHarmony生态千帆起,投入OpenHarmony生态“正当时”

    ,比如大家最关心重载性能优化。...Refresh组件支持自定义下拉刷新能力,允许设置下拉刷新时显示内容,增强组件基础能力 动画效果增加或增强: 支持给组件设置球面高阶属性、下边缘像素扩展、取色模糊、G2圆角、阴影、渐变等高阶图形属性,...开发效率增强 支持命名路由能力,借助此能力可针对不同页面设置差异化切换动效;轻量级ArkUI框架支持定义全局数据对象,可进行应用内页面数据共享。...跨端迁移能力增强,支持调用接口来动态打开和关闭迁移能力。应用可动态选择迁移成功后是否迁移页面栈,以及源端是否退出。 应用包管理 支持应用安装包免解压特性,优化系统启动性能和应用安装性能。...开发效率增强 支持命名路由能力,借助此能力可针对不同页面设置差异化切换动效;轻量级ArkUI框架支持定义全局数据对象,可进行应用内页面数据共享。

    56320

    架构之美:教你如何分析一个接口?

    这一讲,我们就来一起来学习怎样看接口,我选择项目是Ruby on Rails,因为它接口设计风格是带给我最多震撼,无论是编程接口优雅,还是开发过程接口顺畅。 看设计要先看模型。...那样不声明方法就去调用,因为这是由Ruby动态语言特性支持,而Java这种编译型语言是做不到。...使用Rails,这就是一个命令: $ rails new article-app 这个命令执行结果生成不仅仅是源码,还有一些鼓励你去做最佳实践,比如: 它选择了Rake作为自动化管理工具,生成了对应...$ bin/rails server 这就启动了一个服务器,访问 http://localhost:3000/ 这个 URL,你就可以访问到一个页面。...执行下面的命令,它会帮你生成一个controller类,生成对应页面,甚至包括了对应测试,这同样是一个鼓励测试最佳实践。

    2.2K20

    UI库(CSS+HTML)

    HTML 是结构化文档, 算是数据结构一种(变体)吧 CSS 就是渲染引擎怎么运作配置文件 CSS难在哪里?...前端CSS框架 但是现在有两个主要动态css语言,LESS和SASS,给css提供了变量,mixin,运算符等功能,让写出模块化css框架成为可能。...这个框架对大部分元素视觉细节都已经做得很完整,基本上你只需要写html,加几个class,就可以做出像模像样页面了,做起prototype来嗷嗷快。...需要注意是这个框架和Ruby on Rails是高度整合,用起来需要大量命令行操作,比Bootstrap麻烦,但是在Rails开发人员里面用得比较多。...大部分组件是依赖css,依赖jQuery组件主要是有交互弹窗组件、下拉菜单等。

    1.7K10

    go语言入门

    静态类型语言,但是有动态语言感觉,静态类型语言就是可以在编译时候检查出来隐藏大多数问题,动态语言感觉就是有很多包可以使用,写起来效率很高。...语言层面支持并发,这个就是Go最大特色,天生支持并发。Go就是基因里面支持并发,可以充分利用多核,很容易使用并发。...内置runtime,支持垃圾回收,这属于动态语言特性之一吧,虽然目前来说GC(内存垃圾回收机制)不算完美,但是足以应付我们所能遇到大多数情况,特别是Go1.1之后GC。...简单易学,Go语言作者都有C基因,那么Go自然而然就有了C基因,那么Go关键字是25个,但是表达能力很强大,几乎支持大多数你在其他语言见过特性:继承、重载、对象等。...缺点 1:缺少框架 Go 语言没有一个主要框架,如 Ruby Rails 框架、Python Django 框架或 PHP Laravel。

    65010

    GitLab安装与基础使用

    Gitlab优点: 有开源免费版本,可以进行私有开发上传与拉取; 社区版具有高度可扩展性,可以在单个服务器或群集上支持 25000 个用户 GitLab 一些功能包括:Git 仓库管理,代码评论,问题跟踪..." => { "path" => "/home/gitlab/git-data" } }) #重新加载配置 $sudo gitlab-ctl reconfigure #重载后发现我们更改仓库地址下面有数据存放了...$ls /home/gitlab/git-data/ repositories 6) 创建一个开发组 在Gitlab登录后页面上点击Create a group->输入相关组信息创建即可; 邀请成员加入到组...:Members->Group members->Invite memeber -> 选择用户加入到刚创建组以及角色权限; ?...补充说明: 更新后如果用户还存在登陆不了问题,这时候可以让用户自己去Web端登陆gitlab,选择忘记密码,通过忘记密码来重新设置一个密码。

    8.5K20

    搭建GitLab代码管理仓库

    页面概览​ 前提​ 一台服务器,系统 Linux,内存 >=4g 我轻量应用服务器配置如下 搭建​ 服务器我选择安装宝塔面板,对于个人项目,还是很推荐安装,集成了一些软件商店,包括本次主角,同时提供可视化页面操作...默认端口号 8099,记得在防火墙开放下该端口 进入访问地址就可以看到 GitLab 登录页面了。...修改密码​ Reset a user's password | GitLab 进入控制台(进入要稍等一段时间) sudo gitlab-rails console 显示页面如下 [root@VM-4-5...letsencrypt['auto_renew'] = true #删除前面的#号 自动更新 然后重载配置(需要一点时间) gitlab-ctl reconfigure 然后重启gitlab使配置生效...还是挺吃内存,毕竟安装时候就要求 4g 内存以上。 有个轻量级项目管理器 gitea 不妨也是一种选择,但功能上没有Gitlab这么丰富。

    1.2K10

    01 . GitLab简介及环境部署

    网站最终丢失了最后6小时数据库数据(包括问题、合并请求、评论、片段等,不含代码库) GitLab是由 GitLab Inc.开发,使用 MIT 许可证基于网络 Git 仓库管理工具开源项目,且具有...GitLab让开发团队对他们代码仓库拥有更多控制,相对于GitHub,它有不少特色: # 1 允许免费设置仓库权限 # 2 允许用户选择分享一个project部分代码 # 3 允许用户设置project...负责分发任务 4.sideiq: # 后台任务,主要负责发送电子邮件,任务需要来自redis 5.unicorn: # 包含gitlab主进程 6....backup_keep_time'] = 604800 # 备份 [root@gitlab ~]# gitlab-ctl reconfigure # 开始备份 [root@gitlab ~]#...之后再让你输一个“yes”,意思是因为备份中没有用户敏感数据,重写恢复时会丢失这些敏感数据; 成功; #恢复完成,重载配置 [root@gitlab backups]# gitlab-ctl

    3.9K63
    领券