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

我是 rails 和 ruby 的新手,我是 1 周前才开始的。


我正在尝试在 Rails 上的两个人之间进行聊天,其中 jquery 用于 ajax 部分。


一切正常,但我得到了这个我不明白的错误,这真的让我很困扰


错误的图像(无法将其包含在图像应答器中) https://ibb.co/KKjKLPf


VM17: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


慕少森
浏览 106回答 2
2回答

Cats萌萌

我的猜测在你的application.js文件中,你有//= require rails-ujs//= require jquery_ujs如果删除//= require jquery_ujs,错误应该会消失。

largeQ

正如错误所说,您正在为同一目的导入两个库jquery-ujs, 和rails-ujs.&nbsp;因此,根据您使用的 Rails 版本,您只需要留下一个。如果您的版本是 5.0 或之前的版本,则需要使用jquery-ujs,但如果您使用 Rails 5.1 及以上版本,则需要使用rails-ujs.&nbsp;此外,如果您需要对 jQuery 的支持,正如您在评论中提到的,您需要jquery-rails在您的 中添加 gem ,在控制台中Gemfile运行bundle install,然后在application.js添加中//= require jquery(在您要导入的行上方jquery-ujs或rails-ujs)中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript