javascript - 未捕获的 ReferenceError: $ 未在 Rails 5.2 中定义
问题描述
我正在构建一个 Rails 应用程序,我想在用户#show
单击索引表的行时将他们重定向到一个操作。
为此,我尝试在我的咖啡脚本文件中使用 Jquery。这是相关代码
index.html.erb:
<% @campaign.each do |campaign| %>
<tr data-link="<%= campaign_path(campaign) %>">
<td><%= campaign.campaign_name %></td>
<td><%= campaign.start_date %></td>
<td><%= campaign.created_at %></td>
<td><%= link_to "delete", campaign, class:"btn btn-default btn-xs", method: :delete, data: { confirm: "You sure?" } %></td>
</tr>
<% end %>
广告系列.咖啡:
$ ->
$("tr[data-link]").click ->
window.location.replace($(this).data("link"));
但是一旦我运行它,我就会继续在浏览器控制台中看到这个错误:
Uncaught ReferenceError: $ is not defined
我已经安装了jquery-rails
宝石。也将它包含在我的application.js
文件中。当我的应用程序被渲染时,我也在标题中看到了 Jquery 脚本标记
<script src="/assets/jquery.self-bd7ddd393353a8d2480a622e80342adf488fb6006d667e8b42e4c0073393abee.js?body=1"></script>
但我仍然在控制台中看到这个错误
Uncaught ReferenceError: $ is not defined
at campaigns.self-4617c47e06384e281aa2550caae08f3b4986441d2bfff9b6e3519f0a1e82f3d7.js?body=1:2
at campaigns.self-4617c47e06384e281aa2550caae08f3b4986441d2bfff9b6e3519f0a1e82f3d7.js?body=1:8
(anonymous) @ campaigns.self-4617c47e06384e281aa2550caae08f3b4986441d2bfff9b6e3519f0a1e82f3d7.js?body=1:2
(anonymous) @ campaigns.self-4617c47e06384e281aa2550caae08f3b4986441d2bfff9b6e3519f0a1e82f3d7.js?body=1:8
我错过了什么吗?感谢您的帮助。
解决方案
我想我遇到了同样的问题,我意识到我一定误解了官方指南:
我认为在 Rails 5.2(Rails 5.1 之后)中,因为我们有内置的 rails-ujs,我们不再需要 jquery/jquery_ujs。
但是我错了。
我通过这篇文章了解了我的错误。在我发现“未捕获的 ReferenceError:$ 未定义”问题后,我怀疑的是“没有安装 jquery”。在检查了很多帖子后,我尝试安装jquery-rails进行测试。
最后它起作用了。
是的,即使在 Rails 5.2 中,我们也需要 jquery-rails。
推荐阅读
- c# - 在 ToolStripMenuItem 上添加右键单击上下文菜单,而不关闭菜单
- java - Eclipse - 在调试模式下运行失败
- html - 用 Jest 测试 Angular 指令
- sql - 在使用 Prisma 的选择查询中使用 _count
- python - 在python中使用数组索引数组访问一维数组
- java - 确切的字符串值不匹配
- mysql - Mysql根据column_2中的不同值获取column_1的总和
- python - PyFlink - 如何使用 PyFlink 将数据推送到 mongodb 和 redis?
- python - 按下的按钮保持真实
- trustpilot - 以增量顺序获取评论 - Trustpilot