2012-03-28 10 views
6

मैं रेल से 3.1.3 से 3.2.2 तक अपग्रेड कर रहा हूं, लेकिन किसी कारण से अब url_ हमेशा मार्ग/संपत्ति के लिए वापसी करता है यदि मार्ग मौजूद नहीं है।अपरिभाषित मार्गों के लिए url_ वापसी/संपत्ति क्यों है?

उदाहरण के लिए:

url_for({}) #=> "/assets" 
url_for({action: 'fake', controller: 'notreal'}) #=> /assets?action=fake&controller=notreal 

लेकिन मैं इसे सामान्य ActionController :: फेंक करने के लिए RoutingError के रूप में वह सामान्यत: करता चाहते हैं ...

+0

अजीब एक। अपने सभी एनवी कॉन्फ़िगरेशन की जांच करें। क्या आपने 'url_for' को फिर से परिभाषित किया था? क्या आपने 'रेक रेल: अद्यतन' चलाया था? – Austin

+0

क्या आपने इसे हल किया? मुझे यहाँ एक ही समस्या है। सबसे सरल परिदृश्य के लिए, यानी। कोई संसाधन नहीं, सिर्फ एक डेमो कंट्रोलर बनाया और इंडेक्स एक्शन से redirect_to: action => 'show' का उपयोग किया। और यह उस प्रकार का यूआरएल उत्पन्न करता है:/संपत्ति? कार्रवाई = शो और नियंत्रक = डेमो मैं उम्मीद करता हूं कि यह शो टेम्पलेट प्रस्तुत करे। क्या आपको पता चला कि क्या हो रहा है? – jlstr

+0

@ user766388 अभी भी एक रहस्य है:/ – bkempner

उत्तर

0

मुझे लगता है कि आप संपत्ति पूर्व संकलन है पर और के बाद से छवि संपत्ति फ़ोल्डर में मौजूद नहीं है, संकलित फ़ाइल नाम शून्य है लेकिन पथ फ़ोल्डर संपत्ति की जड़ को इंगित करता है। क्या आप लॉग में पूर्व-संकलित संपत्ति नहीं ढूंढने के बारे में भी एक त्रुटि देख रहे हैं?

विकास पर्यावरण में पूर्व-संकलन के बिना इसे चलाने के लिए प्रयास करें। मैं संपत्ति प्रीकंपिलेशन पर ब्योरा नहीं दूंगा - आप संपत्ति पाइपलाइन के विवरण के लिए http://guides.rubyonrails.org/asset_pipeline.html देख सकते हैं। यदि आप केवल इस मुद्दे को उत्पादन वातावरण में देख रहे हैं, तो ऐसा इसलिए हो सकता है क्योंकि होस्ट प्लेटफॉर्म आपके लिए संपत्ति का प्रीकंपिल कर रहा है।

हालांकि, अगर आप इस उत्पादन में होने की अपेक्षा, आप के बजाय precompilation अक्षम करने की छवि की उपस्थिति की जांच कर सकते हैं।

1

यदि आप नियंत्रक-क्रिया निर्दिष्ट करके मार्ग बनाते हैं तो रेल मार्ग अस्तित्व की जांच नहीं करता है। और स्वाभाविक रूप से यह {} मार्ग के लिए/संपत्ति दिखाता है।

आपको मार्ग.आरबी में नामित मार्गों को बेहतर ढंग से निर्दिष्ट करना चाहिए और फिर url_for के लिए उनका उपयोग करना चाहिए। जैसा:

url_for add_user_path

यह सुनिश्चित करता है कि आप या तो सफल होगा (विद्यमान नामित मार्ग के लिए) या कोई त्रुटि मिलती है।

एचटीएच

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