首页 > 解决方案 > Rails6 Link_to Delete 显示 Showview

问题描述

昨天一切正常。在我恢复最后一个状态之前,我想了解实际破坏 jquery 数据方法的原因:删除并将其路由到显示视图。到目前为止,我什至不知道 jquery 是否正在工作。Lightbox 运行良好,但像这样测试 jquery:Testing jquery in Rails 6给了我一个隐藏的 div。

我已经通过“yarn add jquery”添加了 jquery - 没有错误

我已经添加到我的 application.js 中:

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

这对我的 environment.js:

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

const webpack = require('webpack')

environment.plugins.prepend('Provide', new webpack.ProvidePlugin({

$: 'jquery',

jQuery: 'jquery',

Popper: ['popper.js', 'default']

}))

module.exports = environment

第一个神秘的行为是,我必须在我的包目录中创建一个 lightbox.js 文件。在 application.js 中的简单导入不起作用。

接下来的事情是,我的删除方法的 link_to 中断并显示了显示视图:

<%= link_to 'Delete', gallery, :class => "btn btn-danger btn-sm text-white", method: :delete, data: { confirm: "Are you sure?" } %>

这给了我正确的html:

<a class="btn btn-danger btn-sm text-white" data-confirm="Are you sure? 
This action will delete all image assignments to this gallery." rel="nofollow" data-method="delete" href="/galleries/21">Delete</a>

这是控制器方法:

  # DELETE /galleries/1
  # DELETE /galleries/1.json
  def destroy
    @gallery.destroy
    respond_to do |format|
      format.html { redirect_to galleries_path, notice: 'Gallery was successfully deleted.' }
      format.json { head :no_content }
    end
  end

但它指示显示视图,所以我什至不知道 jquery 是否正在工作,因为它看起来不会,而且灯箱仍在工作。昨天 link_to 工作正常。

是否有可能以某种方式破坏任何清单文件?

标签: jqueryruby-on-rails

解决方案


将此添加到 enviroment.js

Rails: ['@rails/ujs']

推荐阅读