我是 Rails 和 ruby 的新手,大约 1 周前才开始使用。
我正在尝试在 Rails 上的 2 个人之间进行聊天,使用 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
最佳答案
我的猜测是在您的 application.js
文件中,您有
//= require rails-ujs
//= require jquery_ujs
如果删除 //= require jquery_ujs
,错误就会消失。
关于javascript - jquery_ujs和rails-ujs问题ajax页面的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61067305/