2013-10-30 3 views
7

जब स्थानीय स्तर पर विकसित करने रेल 3.2 का उपयोग कर, मैं समय-समय पर निम्न त्रुटि संदेश प्राप्त करने के बाद स्थानीय स्तर पर तोड़ने:रेल 3.2: विचारों में रूटिंग सहायकों अन्य त्रुटि

In order to use #url_for, you must include routing helpers explicitly. For instance, `include Rails.application.routes.url_helpers 

यह त्रुटि एक बहुत ही सरल link_to कॉल में मेरे विचार से फेंक दिया जाता है , जहां इन राउटिंग हेल्पर्स स्वचालित रूप से शामिल होते हैं और ऐसी त्रुटि नहीं फेंकनी चाहिए। मुझे नहीं लगता कि त्रुटि उत्पन्न हो रही है जहां लिखा है, लेकिन मैं पूर्णता 'खातिर एक उदाहरण त्रुटि डंप पोस्ट करेंगे:

Completed 500 Internal Server Error in 233ms 

ActionView::Template::Error (In order to use #url_for, you must include routing helpers explicitly. For instance, `include Rails.application.routes.url_helpers): 
    1: <%= form_tag products_path do %> 

    app/views/layouts/_search_banner.html.erb:1:in `_app_views_layouts__search_banner_html_erb___3528929561490713150_70155778060240' 
    app/views/pages/new.html.erb:1:in `_app_views_pages_new_html_erb__29715639072237790_70155789748980' 

इससे पहले कि ऐसा लगता है, मैं ठीक से अपने पृष्ठों के सभी को देखने में सक्षम हूँ, ऐसा प्रतीत होता है, वही पृष्ठ जो अभी लोड हो चुके थे, उसी त्रुटि के साथ सफलतापूर्वक विफल हो गए। एक बार त्रुटि प्रकट होने के बाद, इसे ठीक करने का एकमात्र तरीका है मेरे स्थानीय रेल सर्वर से बाहर निकलना और पुनरारंभ करना। जैसे ही मैं अपने सर्वर को पुनरारंभ करता हूं, त्रुटि गायब हो जाती है और सब कुछ सामान्य रूप से काम करने के लिए वापस चला जाता है।

इसके अलावा, यह त्रुटि केवल मेरे कंप्यूटर पर स्थानीय रूप से दिखाई देती है - कोड हेरोकू पर तैनात किया गया है और यह त्रुटि तैनाती के महीनों में दिखाई नहीं दे रही है, और उसी कोड पर चलने वाले अन्य टीम सदस्यों ने त्रुटि देखी है। संपादित करें: अन्य टीम सदस्य उसी कोड पर चल रहे हैं एक ही त्रुटि देखें।

हालांकि यह त्रुटि कभी-कभी किसी भी स्पष्ट कारण के साथ कहीं से बाहर नहीं आती है, लेकिन मैंने देखा है कि कुछ रुझान हैं। यह अक्सर एक अलग त्रुटि के तुरंत बाद प्रकट होता है। यह तब भी दिखने की अधिक संभावना है जब रेल सर्वर किसी भी पेज को लोड किए बिना कुछ समय के लिए निष्क्रिय हो गया हो।

संपादित करें: अधिक जानकारी रेल संस्करण: 3.2.13 रूबी संस्करण: 2.0.0

पूर्ण स्टैक ट्रेस पाया जा सकता है here

मैं एक फेंकने के लिए कोड लिख कर त्रुटि हासिल की किसी क्रिया में त्रुटि, उस क्रिया का अनुरोध भेजना, फिर एप्लिकेशन में किसी अन्य पृष्ठ तक पहुंचने का प्रयास करना। दिलचस्प बात यह है कि मैंने जिस पहली त्रुटि का उपयोग करने का प्रयास किया वह शून्य से एक विभाजन था, जिसने त्रुटि नहीं बनाई थी। इसके बाद, मैंने ऐरे [] त्रुटि के लिए एक अपरिभाषित विधि बनाई, जिसके परिणामस्वरूप यहां वर्णित एक है।

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

DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! 
Support for these plugins will be removed in Rails 4.0. 
Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. 
See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. 
(called from <top (required)> at /tmp/build_175439d1-f385-43bd-bf52-ebcae817e70b/Rakefile:7) 

यह त्रुटि लाइन MyApp::Application.load_tasks पर मेरे Rakefile में फेंक दिया जाता है: रेल 2.3 शैली प्लगइन्स के लिए अस्वीकार्यता चेतावनी जब मैं Heroku को तैनात, मैं निम्नलिखित त्रुटि मिलती है। मेरे पास vendor/plugin निर्देशिका में कोई फ़ाइल नहीं है।

+0

भी [अन्य समान SO पोस्ट] के विपरीत (http://stackoverflow.com/questions/17553326/call-to-expire-fragment-raises-to-use-url- के लिए-यू-चाहिए-शामिल-मार्ग-Helpe?rq = 1), मैंने हाल ही में रेल संस्करणों को स्विच नहीं किया है। – hunteros

+0

क्या आपने रूबी और रेलों को पुनर्स्थापित करने का प्रयास किया है क्योंकि यह अपवाद केवल आपके स्थानीय वातावरण में होता है? रूबी का संस्करण क्या है? क्या आप पूर्ण ट्रेस पोस्ट कर सकते हैं? आपके संदर्भ के लिए यह अपवाद यहां उठाता है: https://github.com/rails/rails/blob/e20dd73df42d63b206d221e2258cc6dc7b1e6068/actionpack/lib/abstract_controller/url_for.rb – peresleguine

+0

@peresleguine मैंने रूबी संस्करण और प्रश्न के लिए पूर्ण पता जोड़ा। – hunteros

उत्तर

0

के साथ इस

<a href="<%= root_path %>" class="nav-link"><%= image_tag "image.svg", onerror: "this.src='image.png'" %></a> 

की जगह के रूप में मैं इसे अपने रेल संस्करण के साथ एक मुद्दा है देख सकते हैं। इस रिस्क्यू मुद्दे पर टिप्पणियां देखें: https://github.com/rails/rails/issues/11782#issuecomment-22222166

+0

हम रेल 4 में अपग्रेड कर रहे हैं, इसलिए मुझे उम्मीद है कि यह सिर्फ रेल संस्करण है। लेकिन अगर यह रेल 3.2.13 के साथ पूरी तरह से एक मुद्दा है और इसमें रत्न या अन्य कॉन्फ़िगरेशन के साथ कुछ लेना देना नहीं है, तो मैंने सोचा होगा कि अधिक लोग इस में भाग लेंगे ... – hunteros

+0

तो? आप अधिक मुद्दों से लिंक करना चाहते हैं? या आप वास्तव में क्या कहने की कोशिश कर रहे हैं? इस तरह की तरह? https://github.com/rails/rails/pull/9248 – phoet

+0

उत्तर लिंक पहली बार मैंने इस मुद्दे को वैक्यूम में होने वाले मुद्दे के बारे में देखा था जिसमें केवल रेल समस्याएं थीं। अन्य लिंक आपकी टिप्पणी में से एक की तरह हैं जो थ्रेडसेफ मोड से संबंधित है (जो मेरे ऐप का उपयोग नहीं करता है)। मेरा मुद्दा यह है कि अगर मैं पूरी तरह से रेल थे तो मैं अधिक SO प्रश्न, गितूब मुद्दों, आदि की अपेक्षा करता हूं। मेरा मानना ​​है कि रेल संस्करण को टक्कर देने से त्रुटि से छुटकारा पड़ेगा, लेकिन मैं यह सुनिश्चित करना चाहता हूं कि हम अंतर्निहित मुद्दे को पकड़ रहे हैं - संभावित रूप से [रेल प्रतिबद्धता] (https://github.com/rails/rails/commit/6ab1a9540b73555f2cabb54860b9ca17e8f226cb) आपके उत्तर लिंक से जुड़े – hunteros

0

अजीब ...

कोशिश के रूप में अब तक इस

<%= link_to(image_tag("image.svg", onerror: "this.src='image.png'"), root_path, class: "nav-link") %> 
+0

दुर्भाग्य से मार्कअप के साथ इसका कोई संबंध नहीं है ... यह समस्या HTML/रूबी के बावजूद सभी पृष्ठों पर दिखाई देती है जो लिंक उत्पन्न करती हैं (और 'link_to' वाक्यविन्यास अन्य पृष्ठों पर उपयोग किया जाता है और अभी भी त्रुटि फेंकता है)। मुझे संदेह है कि विशेष लाइन हमें समस्या के बारे में बहुत कुछ बता सकती है। – hunteros

+0

मुझे यकीन नहीं था कि वह विशेष लिंक त्रुटि उत्पन्न कर रहा था या नहीं। बहुत अजीब ... क्षमा करें मैं मदद नहीं कर सका। – omarvelous

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