проблема с jquery_u js и rails-u js проблема ajax страница - PullRequest
0 голосов
/ 06 апреля 2020

Я новичок в рельсах и ruby, я только начал как 1 неделю go.

Я пытаюсь поговорить между двумя людьми на рельсах, с jquery для ajax part.

Все работает, но я получил эту ошибку, которую я не понимаю, и это действительно беспокоит меня

Изображение с ошибкой (не может включать его с изображением balise ) https://ibb.co/KKjKLPf

VM17: 2082 Uncaught Error: если вы загружаете jquery_u js и rails-u js, используйте только rails-u js.

Я понимаю, что я использую jquery_u js и rails-u js одновременно, и rails хочет, чтобы я использовал только rails -u js.

Моя главная страница (индекс. 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 %>

Я пытаюсь найти решение, но я все еще застрял, поэтому выкладываю его здесь, я хотел бы, чтобы это работало, но без этой ошибки. Что мне делать? Изменить мой ajax запрос на CoffeeScript? Еще не изучил CoffeeScript: /

edit:

Здравствуйте, я не знаю почему, но что-то удаляю в приложении. js сделайте трюк

// require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("custom")

Я только что прокомментировал require ("@ rails / u js"). start (), и ошибка больше не отображается, а код все еще работает: / weard

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Мое предположение в вашем файле application.js, у вас есть

//= require rails-ujs
//= require jquery_ujs

Если вы удалите //= require jquery_ujs, ошибка должна исчезнуть go.

0 голосов
/ 27 апреля 2020

Как говорится в сообщении об ошибке, вы импортируете две библиотеки для одной цели: jquery-ujs и rails-ujs. Поэтому вам нужно оставить только одну в зависимости от используемой вами версии Rails. Если ваша версия 5.0 или ранее, вам нужно использовать jquery-ujs, но если вы используете Rails 5.1 и выше, вам нужно использовать rails-ujs. Кроме того, если вам нужна поддержка jQuery, как вы упомянули в комментарии, вам нужно добавить гем jquery-rails в ваш Gemfile, запустить bundle install в консоли и в application.js add //= require jquery (над строкой, в которую вы импортируете jquery-ujs или rails-ujs).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...