【问题标题】:Ruby on rails 7 destroy not showing alertRuby on rails 7破坏不显示警报
【发布时间】:2022-08-06 02:37:26
【问题描述】:

当我单击删除时,警报不显示并转到此路径course_path,但不要删除课程。

def destroy
    authorize @course
    @course.destroy

    respond_to do |format|
      format.html { redirect_to courses_url, notice: \"Course was successfully destroyed.\" }
      format.json { head :no_content }
    end
  end
before_action :set_course, only: %i[ show edit update destroy ]

风景:

= link_to \'Destroy\', course, method: :delete, data: { confirm: \'Are you sure?\' }, class: \'btn btn-sm btn-danger\'

_messages.htm.haml 文件是:

- flash.each do |name, msg|
  - if msg.is_a?(String)
    %div{:class => \"alert alert-#{name.to_s == \'notice\' ? \'success\' : \'danger\'}\", :rol => \"alert\"}
      %button.close{\"aria-hidden\" => \"true\", \"data-dismiss\" => \"alert\", :type => \"button\"} ✘ 
      = content_tag :div, msg, :id => \"flash_#{name}\"

如何解决这个问题? jQuery 会不会有问题?

  • 您可以共享您的 Rails 服务器的日志,这将有助于其他人调试
  • data-method=\"delete\"data-confirm 都由 Rails UJS 处理。它被重写以删除 Rails 5 中的 jQuery 依赖方式,并被 Rails 7 中的 Turbo 默认替换。Rails 7 也有一个全新的资产管道,所以如果你正在升级,你可能已经破坏了你现有的资产.我有一种感觉,在接下来的几个月里,我们会看到很多这个通常无法回答的问题。
  • 如果您想继续使用 Rails UJS,您需要确保它确实包含在您的页面中,并且您没有任何阻止它工作的脚本错误。如果您想咬紧牙关,这里有升级到Turbo 的指南。

标签: ruby-on-rails ruby ruby-on-rails-7


【解决方案1】:

在 Rails 7 中,它将是:

= link_to 'Destroy', course, data: {turbo_method: :delete, turbo_confirm: 'Are you sure?' }, class: 'btn btn-sm btn-danger'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    相关资源
    最近更新 更多