首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复rails中的"ReferenceError:$未定义“?

如何修复rails中的"ReferenceError:$未定义“?
EN

Stack Overflow用户
提问于 2019-11-07 21:52:58
回答 2查看 1.3K关注 0票数 1

我试图在我的Rails应用程序中在Javascript中执行ajax调用,但我得到了一个"ReferenceError:$未定义“错误。但是我的jquery也安装在我的应用程序中。我看过其他主题,但没有解决方案,这就是我为什么要创建这个主题。

我已经在我的environment.js上尝试了下面的代码:

代码语言:javascript
运行
复制
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
运行
复制
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>

我的application.js文件:

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

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

我的javascript ajax调用:

代码语言:javascript
运行
复制
<% 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工作并理解这个问题。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-08 16:48:27

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

问题是Rails 6中包含了WebPacker,如果您有相同的问题的话。试着跟着向导走。

谢谢

票数 0
EN

Stack Overflow用户

发布于 2019-11-07 23:23:19

你可以用香草JS

代码语言:javascript
运行
复制
xhr = new XMLHttpRequest();
xhr.open('POST', '/user/updateBiography');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(encodeURI('data=' + content));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58757426

复制
相关文章

相似问题

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