You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 7中Bootstrap模态框(Modal)无法正常工作求助

Rails 7 中 Bootstrap 模态框无响应的解决方案

核心问题:Bootstrap 版本属性不兼容

你当前使用的模态框触发属性是 Bootstrap 4 及更早版本的写法,而 Rails Bootstrap gem 默认安装的是 Bootstrap 5.x 版本,该版本已将触发属性更新为带 bs 前缀的命名:

  • 旧属性:data-toggle → 新属性:data-bs-toggle
  • 旧属性:data-target → 新属性:data-bs-target

修正后的视图代码

替换你当前的按钮和模态框代码为:

<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target=".bd-example-modal-lg">Large modal</button>

<div class="modal fade bd-example-modal-lg" tabindex="-1" aria-labelledby="myLargeModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">
      Test modal
    </div>
  </div>
</div>

(注:Bootstrap 5 中可移除 role="dialog" 属性,该属性已不再需要)

额外检查项

  1. 确认 Bootstrap 版本:在 Rails 控制台执行 Bootstrap::VERSION 查看当前版本,若为 5.x 则必须使用带 bs 前缀的属性。
  2. 控制台错误排查:打开浏览器开发者工具的 Console 标签页,查看是否存在 JS 报错(比如模块加载失败),不过你下拉菜单可正常工作,基本可排除加载问题。
  3. Turbo 适配:若页面由 Turbo 驱动,确保模态框代码在页面初始加载时已存在;若为动态加载的内容,需通过 Stimulus 控制器手动初始化模态框。

内容的提问来源于stack exchange,提问作者nope2023

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:52:50