【问题标题】:Rails6 Link_to Delete shows ShowviewRails6 Link_to Delete 显示 Showview
【发布时间】:2020-12-14 05:49:13
【问题描述】:

昨天一切正常。在我恢复最后一个状态之前,我想了解实际破坏 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 工作正常。

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

【问题讨论】:

  • 也许你的画廊控制器中有重定向?!
  • 在销毁操作完成之前
  • 如果我将 link_to 简单地更改为 button_to 它可以工作,但是确认不起作用。
  • 能贴出控制器代码吗?可能会有所帮助,也许你错过了什么。
  • 当然,但如前所述,昨天一切正常,所以我认为,jquery 搞砸了。向上

标签: jquery ruby-on-rails


【解决方案1】:

将此添加到 enviroment.js

Rails: ['@rails/ujs']

【讨论】:

  • 加上这个没有区别。
【解决方案2】:

我创建了一个新项目,并将文件从旧的一个一个添加到新的。新的很完美,但我只通过纱线添加了 jquery。看来,如果您安装多个版本的 jquery (jquery gem / jquery-rails / jquery yarn) 并切换或删除它们,基本的 rails/ujs 就会失去它在 rails 6 中的功能。我无法在旧版本中恢复它项目,但很高兴知道,在 rails 6 覆盖 rails 基本功能时您必须小心。

【讨论】:

    猜你喜欢
    • 2020-12-26
    • 2013-07-18
    • 2015-08-16
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多