2015-04-18 5 views
15

मैंjQuery-turbolinks - LINK_TO पुष्टि: पॉप अप रेल में कई बार बार

क्षुधा/विचारों/नुस्खा/show.html.haml एक लाइन

= link_to "Delete", recipe_path, method: :delete, data: {confirm: "Are you sure?" }, class: "btn btn-default"  
युक्त के साथ एक विशिष्ट CRUD आपरेशन आवेदन किया है

यदि मैं ऐप्स/विचार/नुस्खा/new.html.haml में एक नया नुस्खा बनाता हूं और ऐप्स/दृश्य/नुस्खा/show.html.haml पर रीडायरेक्ट हो जाता है और हटाएं दबाता हूं, तो यह मुझे एक बार पुष्टि देता है और नुस्खा हटा देता है।

हालांकि, अगर मैं सामान्य प्रकार के index.html.haml से उसी शो पेज पर जाता हूं जो http://localhost:3000/recipes/29 जैसे व्यक्तिगत नुस्खा से लिंक करता है और हटाएं बटन दबाता है, तो पुष्टिकरण 3-4 बार पॉप हो जाएगा .. (UNLESS I पहले पृष्ठ को संदर्भित करें, फिर यह केवल एक बार पुष्टि करेगा)।

मैं jQuery-turbolinks जोड़ने की कोशिश की और यह अभी भी काम नहीं किया ...

एप्लिकेशन/विचारों/लेआउट/application.html.haml% शीर्षक के अंतर्गत निम्नलिखित

= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true                  
    = javascript_include_tag 'application', 'data-turbolinks-track' => true                      
    = csrf_meta_tags 

सुनिश्चित नहीं हैं कि है इसे ठीक करने तो यह कई बार

संपादित करें पॉप अप नहीं करता है: फिर भी समान व्यवहार के बाद भी मैं @recipe

पास करके कोड को ठीक
= link_to "Delete", recipe_path(@recipe), method: :delete, data: {confirm: "Are you sure?" }, class: "btn btn-default"  

संपादित करें 2: अगर मैं सभी को एक साथ turbolinks को दूर यह काम करता है buttTurbolinks तेजी से अपने वेब अनुप्रयोग में मौजूद निम्न लिंक बनाता है और के रूप में मैं सबसे रेल परियोजनाओं में इस्तेमाल से समझ सकते हैं। तो यह देखने की कोशिश कर रहा है कि क्या कोई काम है? ऐसा करने में सक्षम होने के लिए एक सुंदर सामान्य चीज़ की तरह लगता है।

संपादित करें 3:

मैं jQuery-turbolinks जोड़ा

Gemfile

gem 'jquery-turbolinks' 

जावास्क्रिप्ट मैनिफ़ेस्ट फ़ाइल, इसी क्रम में:

//= require jquery 
//= require jquery.turbolinks 
//= require jquery_ujs 
//= require turbolinks 

पुष्टि की तुलना में अधिक पॉप एक बार अभी भी इसे ठीक करने का एक तरीका होना चाहिए?

संपादित करें 4: मुझे समस्या मिली। एचटीएमएल में% हेड% html के नीचे था और आवेदन ठीक से इंडेंट नहीं किया गया था।जे एस और अन्य लोगों के शरीर में और नहीं सिर अनुभाग तो बजाय

!!! 5                                                    
%html                                                    
%head                                                    
    %title Recipe App                                                
    = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true                               
    = javascript_include_tag 'application', 'data-turbolinks-track' => true                                  
    = csrf_meta_tags 

की यह

!!! 5                                                    
%html                                                    
    %head                                                   
    %title Recipe App                                                
    = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true                               
    = javascript_include_tag 'application', 'data-turbolinks-track' => true                                  
    = csrf_meta_tags   
+0

क्या आपके पास कोई कस्टम जावास्क्रिप्ट/कॉफ़ीस्क्रिप्ट लोड है? – fylooi

+0

@fylooi कोई मानक बेरबोन ऐप नहीं। – CodeCrack

उत्तर

9

jquery-turbolinks वास्तव में आवश्यक नहीं होना चाहिए; मेरी क्षुधा इसके बिना सही ढंग से काम ...

आप यह सुनिश्चित करें कि कर रहे हैं:

  • आप अपने html के <head> भाग में javascript_include_tag ... लाइन है?
  • आपके पास केवल एक javascript_include_tag ... लाइन है?

पृष्ठभूमि:

समस्या आप हैं, वे jquery_ujs सेटअप हर turbolinks पृष्ठ लोड डुप्लिकेट संचालकों में जिसके परिणामस्वरूप स्थापित किया जा रहा पर कहा जाता है। के बाद से एक turbolinks पृष्ठ लोड बस दस्तावेज़ आप अपने <body> कि चलाता है jquery_ujs सेटअप के अंदर कुछ करना ही होगा की <body> हिस्सा ... भी

देखें इन उत्तरों को बदल देता है: https://stackoverflow.com/a/18260585/211060 और https://stackoverflow.com/a/4475479/211060

+0

हाँ आप सही थे .. javascript_include_tag सिर में नहीं था .. कोड का इंडेंट गलत था – CodeCrack

2

आप recipe की id गुजर जाना चाहिए किया जाना चाहिए था शामिल थे करने के लिए एक पैरामीटर के रूप में हटा दिया गया recipe_path, शायद के रूप में इस प्रकार है:

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

एक वस्तु के बिना पारित किया जा रहा है, मैं अनुमान लगा रहा हूँ यह कई रिकॉर्ड हटा रहा है।

+0

नुस्खा ऑब्जेक्ट पास नहीं कर रहा है, लेकिन किसी कारण से इसे ठीक नहीं किया गया है।याद रखें कि क्या मैं शो पेज रीफ्रेश करता हूं, पुष्टिकरण बॉक्स केवल एक बार पॉप अप करता है .. तो मुझे अनुमान लगा रहे हैं कि टर्बोलिंक्स के साथ कुछ करना है? – CodeCrack

3

शायद आप rails.js की कई प्रतियां शामिल कर रहे हैं?

चेकआउट this पोस्ट करें और देखें कि आपकी समस्या हल हो जाती है या नहीं।

2

मैं इस तरह के मुद्दे का सामना करना पड़ा और त्रुटियों की पहचान करने के बाद हल किया गया: -

  1. मेरे पास layoutके साथ थाशामिल
  2. मेरी partial फिर jquery.min जो पहले से ही application.jsalready included
  3. में शामिल किया गया था मैं कुछ js files..which केवल एक बार प्रति ईवेंट होना चाहिए में getScript()कई बार उपयोग कर रहा था सहित किया गया था।

उम्मीद है कि इससे मदद मिलती है।

संबंधित मुद्दे