为了账号安全,请及时绑定邮箱和手机立即绑定

问题与 jquery_ujs 和 rails-ujs 问题 ajax 页面

问题与 jquery_ujs 和 rails-ujs 问题 ajax 页面

慕少森 2022-06-16 16:33:06
我是 rails 和 ruby 的新手,我是 1 周前才开始的。我正在尝试在 Rails 上的两个人之间进行聊天,其中 jquery 用于 ajax 部分。一切正常,但我得到了这个我不明白的错误,这真的让我很困扰错误的图像(无法将其包含在图像应答器中) https://ibb.co/KKjKLPfVM17:2082 未捕获的错误:如果同时加载 jquery_ujs 和 rails-ujs,请仅使用 rails-ujs。我知道我同时使用 jquery_ujs 和 rails-ujs,rails 希望我只使用 rails-ujs。我的主页(index.hmtl.erb)有这个作为代码<h1>welcome to the chat  </h1><div id='conv'>    <div id='message'>    </div>    <div id='sendmsg'>    <%= form_tag "/", method: "post" do %>        <input type='hidden' name='name' value='phil'/>        <input id='tex' type="text" name="message" />        <input id='sen' type="submit" value="send" />    <% end %></div></div>我的javascript是这样的window.addEventListener('load', function () {    setInterval(refreshMessage,3000);    function refreshMessage(){        $.ajax({            type: 'GET',            url: '/chatBoard',            success: function(data){                $('#message').html(data);            },            error : function(){                $('#message').html('error');            }         })    };});这个 ajax 向服务器发送一个 GET 到 '/chatBoard' 的信息,它会使用这个脚本返回数据库中的所有消息。<% @messages.each do |message| %><%= message.name %> :<%= message.message %><% end %>我试图找到一个解决方案,但我仍然卡住了,所以我把它贴在这里,我想让这个工作,但没有这个错误。我应该怎么办?用 CoffeeScript 更改我的 ajax 请求?还没学过 CoffeeScript :/编辑:你好,我不知道为什么,但是在 application.js 中删除一些东西就可以了// require("@rails/ujs").start()require("turbolinks").start()require("@rails/activestorage").start()require("channels")require("custom")我刚刚对 require("@rails/ujs").start() 做了评论,错误不再出现,代码仍然有效:/weard
查看完整描述

2 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

我的猜测在你的application.js文件中,你有


//= require rails-ujs

//= require jquery_ujs

如果删除//= require jquery_ujs,错误应该会消失。


查看完整回答
反对 回复 2022-06-16
?
largeQ

TA贡献2039条经验 获得超7个赞

正如错误所说,您正在为同一目的导入两个库jquery-ujs, 和rails-ujs. 因此,根据您使用的 Rails 版本,您只需要留下一个。如果您的版本是 5.0 或之前的版本,则需要使用jquery-ujs,但如果您使用 Rails 5.1 及以上版本,则需要使用rails-ujs. 此外,如果您需要对 jQuery 的支持,正如您在评论中提到的,您需要jquery-rails在您的 中添加 gem ,在控制台中Gemfile运行bundle install,然后在application.js添加中//= require jquery(在您要导入的行上方jquery-ujsrails-ujs)中。



查看完整回答
反对 回复 2022-06-16
  • 2 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信