首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery_ujs和rails的问题-ujs问题ajax页面

jquery_ujs和rails的问题-ujs问题ajax页面
EN

Stack Overflow用户
提问于 2020-04-07 03:16:34
回答 2查看 1.1K关注 0票数 1

我是rails和ruby的新手,大概一周前才刚开始。

我正在尝试在rails上的两个人之间进行聊天,使用jquery作为ajax部分。

一切都正常,但是我得到了一个我不理解的错误,它真的困扰着我

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

2082未捕获的错误:如果同时加载jquery_ujs和rails-ujs,则只使用rails-ujs。

我知道我同时使用jquery_ujs和rails-ujs,而rails希望我只使用rails-ujs。

我的主页(index.hmtl.erb)将此作为代码

代码语言:javascript
复制
<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是这样的

代码语言: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‘,它将使用此脚本返回数据库中的所有消息。

代码语言:javascript
复制
<% @messages.each do |message| %>
<%= message.name %> :
<%= message.message %>
<% end %>

我试图找到一个解决方案,但我仍然卡住了,所以我把它张贴在这里,我想让这个工作,但没有这个错误。我该怎么办?用CoffeeScript请求更改我的ajax请求?尚未学习CoffeeScript :/

编辑:

您好,我不知道为什么,但删除application.js中的某些东西可以实现此目的

代码语言:javascript
复制
// require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("custom")

我刚刚对require("@rails/ujs").start()做了一个注释,错误不再出现,代码仍然有效:/ weard

EN

回答 2

Stack Overflow用户

发布于 2020-04-07 07:57:33

我猜是在你的application.js文件里,你有

代码语言:javascript
复制
//= require rails-ujs
//= require jquery_ujs

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

票数 1
EN

Stack Overflow用户

发布于 2020-04-28 01:47:53

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61067305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档