5

Anzeige ich ein Problem in Produktionsserver bin vor. Dies ist Duplikat einer anderen Frage, aber alle, die Fragen-Antworten nicht für mich arbeiten.Ruby on Rails: Löschen Bestätigung Popup-Dialog zweimal

verwendet I 'löschen' Methode für 'link_to' tag: -

<%= link_to "Delete Campaign", campaign_path(campaign), :class => "btn btn-danger", :method => :delete, :confirm => 'Are you sure?'%> 

Wenn ich auf Link "Kampagne löschen", erhalte ich zweimal Bestätigung Pop-up. Dies geschieht nur auf Produktionsumgebung des Kunden.

mit Ruby 1.9.2 und Rails 3.2.13.

In meinem gemfile, habe ich: -

gem 'jquery-rails' 

In meinem application.js: -

//= require jquery 
//= require jquery_ujs 
//= require bootstrap 
//= require bootstrap-timepicker 
//= require_tree ../../../vendor/assets/javascripts/ 

In meinem application.html.erb: - ​​

<%= javascript_include_tag "application" %> 
<%= javascript_include_tag "http://code.jquery.com/ui/1.10.2/jquery-ui.js" %> 

wenn ich darüber gesucht, fand ich: -
1. config.assets.debug sollte b e false in production.rb (Es ist falsch, aber nicht funktioniert)
2. Es sollte keine öffentlichen/Assets-Verzeichnis (kein solches Verzeichnis in der App)
3. Run Rake Assets: sauber auf Produktion (keine Auswirkungen)
4. diese beiden Zeilen sollten von application.js entfernt werden: -
// = erfordern jquery
// = erfordert jquery_ujs

Last für mich gearbeitet, aber nach den diesen Zeilen zu entfernen, wurde ganz Anwendung betroffen und all jquery-Ereignis funktioniert nicht mehr.

Nach meiner Kenntnis entweder jquery zweimal wird geladen (aber nicht mehr als ein javascript_include_tag verwendet wird) oder es gibt ein Problem in „config.assets.compile“, die in production.rb wahr ist

ich kann‘ t es auf meinem lokalen und heroku auch überprüfen, wie es gut für beide funktioniert.

Liste der Datei in meinem Verkäufer/assets/Javascripts: -

  • bootstrap.js
  • Bootstrap-datepicker.js
  • chai.js
  • jquery-cookie.js
  • mocha.js
  • moment.js
  • require.min.js
  • text.js
  • Strich-amd.js
+0

Könnten Sie bitte alle Dateien im Baum ../../../vendor/assets/javascripts/ Liste? –

+0

@FernandoDiazGarrido: hi, Liste hinzugefügt in der bearbeiteten Frage, check oben – RohitPorwal

+0

Nur ein Vorschlag, gehen Sie zu jquery-ui Website, erstellen Sie eine benutzerdefinierte jquery-Ui-Datei mit nur den Bibliotheken, die Sie verwenden werden, laden Sie es herunter und fügen Sie es hinzu zu deinen Vermögenswerten. Rails fügt es in der Datei application.js zusammen, eine Ressource weniger, die geladen werden kann. –

Antwort

1

begegnete ich das gleiche Problem in einer Entwicklungsumgebung (mit Rails 3.2.13). Ich benutze die folgenden Gem-Versionen (von Gemfile.lock): bootstrap-sass (2.3.1.0), Sass-Schienen (3.2.6), Jquery-Schienen (2.2.1). In app/assets/Javascripts/application.js:

//= require jquery 
//= require jquery_ujs 
//= require bootstrap 
//= require_tree 

In application.html.erb:

<%= javascript_include_tag "application" %> 

In meiner erb Vorlage:

<%= button_to 'Delete', @card_type, method: :delete, form_class: 'destroy_button', 
data: { confirm: "Are you sure?" } %> 

Es scheint, dass der Handler für input [data-confirm] wird zweimal hinzugefügt, einmal durch die Anforderung von jquery_ujs und wiederum durch das Erfordernis eines Bootstrap. Ich eliminierte das doppelte Abfeuern der Bestätigungswarnung, indem ich keine jquery-ujs benötigte, aber ich hoffe, dass jemand anderes eine befriedigendere Lösung postet.

1

Ich Rails 4 und keine der Antworten, die ich gefunden auf SO arbeitete für mich außer dieser mit ... änderte ich die Linie in application.html.erb:

<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 

zu

<%= javascript_include_tag 'application', 'data-turbolinks-eval' => false %>. 

https://github.com/rails/turbolinks/issues/244