gpt4 book ai didi

ruby-on-rails - rails 6 : How to add jquery-ui through webpacker?

转载 作者:行者123 更新时间:2023-12-05 00:45:20 24 4
gpt4 key购买 nike

我目前正在尝试在我的应用程序中实现一个日期选择器,问题是没有关于如何添加 jquery-ui-rails 的文档。 gem 通过 webpacker。

可能还有另一种方法可以添加 gem 或其他适合我需要的 gem ?

最佳答案

您不再需要将 javascript 库添加为 gems(由捆绑器管理)。相反,您使用 yarn 添加它们,它们由 webpack 管理(通过将 webpacker gem 添加到 Gemfile 来启用)。
以下步骤对我有用,可以让 jquery-ui 在 Rails 6 中工作:

  • 在终端上,在您的应用程序中输入:
  • yarn add jquery-ui-dist
  • 您的 config/webpack/environment.js需要查看如下:
  • const { environment } = require('@rails/webpacker')

    const webpack = require('webpack')
    environment.plugins.prepend('Provide',
    new webpack.ProvidePlugin({
    $: 'jquery',
    jQuery: 'jquery'
    })
    );

    const aliasConfig = {
    'jquery': 'jquery-ui-dist/external/jquery/jquery.js',
    'jquery-ui': 'jquery-ui-dist/jquery-ui.js'
    };

    environment.config.set('resolve.alias', aliasConfig);

    module.exports = environment
  • 重启你的 Rails 服务器
  • application.html.erb ,包括 jquery-ui主题:
  • <!DOCTYPE html>
    <html>
    <head>
    <title>Jquery UI Test</title>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>

    <%= stylesheet_link_tag '//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/le-frog/jquery-ui.min.css' %>

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

    <body>
    <%= yield %>
    </body>
    </html>
  • 现在,在您的 app/javascript/packs/application.js 中,您可以使用 jquery-ui :

  • 注意:如果您想在 views 中使用 jQuery文件夹,使其可用 全局
    require("@rails/ujs").start()
    require("turbolinks").start()
    require("@rails/activestorage").start()
    require("channels")

    // THIS IS MAKING jQuery AVAILABLE EVEN INSIDE Views FOLDER
    global.$ = require("jquery")

    require("jquery") // Don't really need to require this...
    require("jquery-ui")

    $(function(){
    // Plain jquery
    $('#fadeMe').fadeOut(5000);

    // jquery-ui
    const availableCities = ['Baltimore', 'New York'];
    $('#cityField').autocomplete( { source: availableCities } );
    $('#calendarField').datepicker( { dateFormat: 'yy-mm-dd' } );
    })
    这将适用于如下所示的页面:
    <div id='fadeMe'>I will fade</div>

    City: <input type='text' id='cityField' />
    Calendar: <input type='text' id='calendarField' />

    关于ruby-on-rails - rails 6 : How to add jquery-ui through webpacker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57555708/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com