如何修复Ruby on Rails中的“ ReferenceError:$未定义”?

我尝试在Ruby On Rails应用程序中使用Javascript进行Ajax调用,但出现“ ReferenceError:未定义$”错误。但是我的jQuery也安装在我的应用程序上。我看了其他主题,但没有解决方案,这就是为什么我要创建这个主题

我已经在我的environment.js中尝试了以下代码:

const { environment } = require('@rails/webpacker')

const webpack = require('webpack')
environment.plugins.append('Provide',new webpack.ProvidePlugin({
  $: 'jquery',jQuery: 'jquery',Popper: ['popper.js','default']
}))

module.exports = environment

我试图删除涡轮链接,什么都没有改变

这是我的布局Javascript行:

<%= javascript_pack_tag 'application','data-turbolinks-track': 'reload' %>

我的application.js文件:

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

//= require jquery3
//= require popper
import "bootstrap"

我的javascript ajax调用:

<% content_for :javascript do %>
  <script>

    var textarea = document.getElementById('biography-editor');
    var text = document.getElementById('biography');
    var btn = document.getElementById('submit-biography');

    function edit_biography() {
      btn.innerHTML = 'Sauvegarder';
      btn.setattribute( "onClick","save_biography()" );
      textarea.style.display = 'block';
      text.style.display = 'none';
    }

    function save_biography() {
      btn.innerHTML = 'Modifier ma biographie';
      btn.setattribute( "onClick","edit_biography()" );
      textarea.style.display = 'none';
      text.style.display = 'block';

      var content = textarea.innerHTML;

      $.ajax({
        url : '/user/updateBiography',type : 'POST',data : content
      });
    }
  </script>
<% end %>

我希望我的JavaScript能够正常工作并理解此问题。

谢谢

lusia_123 回答:如何修复Ruby on Rails中的“ ReferenceError:$未定义”?

您可以使用Vanilla JS

xhr = new XMLHttpRequest();
xhr.open('POST','/user/updateBiography');
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send(encodeURI('data=' + content));
,

我终于在这里找到了解决方案:https://www.botreetechnologies.com/blog/introducing-jquery-in-rails-6-using-webpacker

问题是WebPacker包含在Rails 6中。 如果您有同样的问题。尝试按照指南进行操作。

谢谢

本文链接:https://www.f2er.com/3141419.html

大家都在问