相关疑难解决方法(0)

Rails 3.1 with Asset Pipeline,link_to:确认消息显示两次?

好的,所以我看到这个问题是由jQuery或Prototype的多个链接引起的,但我可以确认我只在整个页面链接到jQuery 一次.我的问题是:当我link_to确认删除时,弹出窗口显示两次.这是我模板中的适用代码(用Slim编写):

link_to('Destroy', depot_path(@depot.id), :confirm => "Really?", :method => :delete)
Run Code Online (Sandbox Code Playgroud)

我运行的Rails 3.1.0与资产管道打开,用gem 'jquery-rails'在我Gemfile,下面是我的application.js文件(这是由链轮的资产管道编译).

//= require jquery
//= require jquery_ujs
//= require 'underscore'
//= require 'backbone' 
Run Code Online (Sandbox Code Playgroud)

underscore.jsbackbone.js我的/vendor/assets/javascripts/目录中,链轮似乎找到了那些没关系.我还搜索了application.jssprockets提供的文件,jQuery只在那里一次,而jQuery UJS只在那里一次.当我的页面呈现时,这就是我的头部样子(我省略了csrf-token显示的值,FWIW).

<head>
  <meta content="text/html; charset=utf-8" http-equiv="content-type">
  <title>Administration</title>
  <link href="/assets/screen.css" media="screen" rel="stylesheet" type="text/css" />
  <script src="/assets/application.js" type="text/javascript"></script>
  <meta content="authenticity_token" name="csrf-param" />
  <meta content="--token--omitted--" name="csrf-token" />
  <script src="/assets/common/subdata.js" type="text/javascript"></script>
  <link href="/assets/show.css" media="screen" rel="stylesheet" …
Run Code Online (Sandbox Code Playgroud)

jquery ruby-on-rails ruby-on-rails-3.1 sprockets asset-pipeline

16
推荐指数
1
解决办法
3898
查看次数

jQuery-turbolinks - link_to confirm:在Rails中弹出几次

我有一个典型的CRUD操作应用程序

包含一行的apps/views/recipe/show.html.haml

= link_to "Delete", recipe_path, method: :delete, data: {confirm: "Are you sure?" }, class: "btn btn-default"    
Run Code Online (Sandbox Code Playgroud)

如果我在apps/views/recipe/new.html.haml中创建一个新配方并重定向到apps/views/recipe/show.html.haml并点击Delete,那么它会给我一次确认并删除配方.

但是,如果我从典型类型的index.html.haml转到同一个显示页面,链接到单个配方,如http:// localhost:3000/recipes/29并点击删除按钮,确认将弹出3-4时间..(除非我首先刷新该页面,然后它会弹出确认一次).

我尝试添加jQuery-turbolinks,它仍然无法正常工作......

app/views/layouts/application.html.haml在%title下面有以下内容

  = stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true                                                                      
  = javascript_include_tag 'application', 'data-turbolinks-track' => true                                                                                    
  = csrf_meta_tags 
Run Code Online (Sandbox Code Playgroud)

不知道如何解决它,所以它不会弹出几次

编辑:即使我通过传递@recipe修复代码后仍然是相同的行为

= link_to "Delete", recipe_path(@recipe), method: :delete, data: {confirm: "Are you sure?" }, class: "btn btn-default"    
Run Code Online (Sandbox Code Playgroud)

编辑2: 如果我一起删除turbolinks它的工作原理buttTurbolinks在你的web应用程序中更快地生成以下链接,据我所知在大多数Rails项目中使用.所以试着看看是否有解决方法?看起来像是一件非常典型的事情.

编辑3:

我添加了jQuery-turbolinks

的Gemfile

gem 'jquery-turbolinks'
Run Code Online (Sandbox Code Playgroud)

JavaScript清单文件,按此顺序:

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require turbolinks
Run Code Online (Sandbox Code Playgroud)

确认不止一次弹出.必须有办法解决它?

编辑4: …

jquery ruby-on-rails turbolinks ruby-on-rails-4

15
推荐指数
1
解决办法
1051
查看次数

为什么我在 Rails 中收到两次 JQuery 警报?

我对删除链接有 jquery 确认。当您单击该链接时,确认会弹出,但是当您单击“确定”时,它会再次弹出。我不明白为什么。除了必须单击“确定”两次之外,该方法工作正常并且帖子被删除。


show.html.haml

%h1= @post.title
%p= @post.description

%p= link_to 'Back', root_path
%p= link_to 'Edit', edit_post_path
%p= link_to 'Delete', @post, method: :delete, data: { confirm: 'Are you sure you want to delete this Post?' }
Run Code Online (Sandbox Code Playgroud)
posts_controller.rb

class PostsController < ApplicationController
  before_action :find_post, only: %i[show edit update destroy]
.
.
.
  def destroy
      @post.destroy
      redirect_to root_path, notice: 'Post successfully deleted.'
  end
.
.
.
  def find_post
      @post = Post.find(params[:id])
  end
end
Run Code Online (Sandbox Code Playgroud)
Gemfile

gem 'bootstrap-sass', '~> 3.3', '>= 3.3.7'
gem 'coffee-rails', '~> …
Run Code Online (Sandbox Code Playgroud)

jquery ruby-on-rails

3
推荐指数
1
解决办法
571
查看次数