2012-05-02 21 views
9

मैं 3.2.2 रेल के लिए रेल 3.1 से एक परियोजना आगे बढ़ रहा हूँ में काम नहीं करता है और मैं इस है:निर्दिष्ट करना एक: LINK_TO में प्रारूप रेल 3.2.2

= link_to 'CSV', :action => 'list', :search => @search, :format => 'csv' 

में रेल 3.1 यह निर्दिष्ट करता है एचटीएमएल लिंक (प्रारूप = सीएसवी) में प्रारूप और इसे answer_with द्वारा पकड़ा जाता है, लेकिन 3.2.2 में प्रारूप कभी भी लिंक में नहीं बनाता है। मैंने जिथब पर काम करने की सूची के माध्यम से स्कैन किया और इससे संबंधित कुछ भी नहीं मिला।

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

इस तरह लग रहा है url_for

#rails 3.1 
url_for :controller=>'posts', :action=>'index', :format=>:xml 
/admin/posts/index?format=xml 

#rails 3.2.2 
url_for :controller=>'posts', :action=>'index', :format=>:xml 
/admin/posts/index 

#rails 3.2.2 
url_for :controller=>'posts', :action=>'index', :format=>:xml, :id => 5 
/admin/posts/index/5.xml 
+0

क्या आप कभी इस के आसपास हो गए थे? मैं एक ही चीज़ का अनुभव कर रहा हूँ। केवल नामित मार्गों के साथ मैं कुछ <'% = link_to" कुछ ", कुछ_पैथ (कुछ,: प्रारूप =>: xml)%>' – slhck

+0

हाँ कुछ कर सकता था, मैं आपके पास जो कुछ है उसके समान हैक का उपयोग कर समाप्त हुआ। मुझे बिल्कुल याद नहीं है लेकिन मुझे लगता है कि मैंने भौतिक रूप से ': action =>' index.xml 'जैसे लिंक में स्थान डाला है, हालांकि यह सही नहीं लगता है। – cbron

उत्तर

10

साथ कोई समस्या है उपयोग करने का प्रयास :format => :csv

http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to#32-Link-to-same-URL-with-different-format

+0

नहीं। मैंने संसाधन पथ का उपयोग करने का भी प्रयास किया: 'document_path (: format =>: csv) 'लेकिन यह मुझे param.sv को पैरामीटर के रूप में जोड़ने के बजाय भेजता है। – cbron

+1

'link_to 'cvs',: action => 'show',: format =>: csv' मैंने इसे आजमाया, यह मेरे लिए पूरी तरह से काम करता है। – Matzi

+0

मैंने अभी एक और नियंत्रक में उस सटीक लिंक की कोशिश की है और यह अभी भी काम नहीं कर रहा है, लेकिन यह आपके लिए प्रारूप = xml जोड़ रहा है? अजीब। – cbron

0

मैं जबकि करने के लिए रेल 3.0 से उन्नयन एक ही समस्या में पड़ गए हैं 3.2.17।

जो मैं देखता हूं, उससे समस्या नहीं थी (जैसा कि अन्य उत्तरों सुझाव देते हैं) link_to पर पैरामीटर निर्दिष्ट किए गए थे, लेकिन routes.rb में मार्गों की परिभाषा के साथ करना था। यह 3.2 में दिखता है, :format पैरामीटर केवल यूआरएल प्रत्यय के माध्यम से पारित किया जा सकता है। यदि कोई मार्ग नहीं है जो URL पर :format मानचित्र करता है, तो इसे link_to द्वारा अनदेखा किया जाएगा। 3.0 इस तरह के मामले में HTTP पैरामीटर के रूप में format जोड़ दिया होगा। 3.2 अब और नहीं करता है।

मेरे समाधान /admin/posts/index/5.xml तरह

match ':controller(/:action(/:id(.:format)))' 

से अपने मूल डिफ़ॉल्ट मार्ग बदलने के लिए

match ':controller(/:action(/:id)(.:format))' 

मूल परिभाषा कवर URL में था, लेकिन नहीं /admin/posts/index.xml। यह मूल प्रश्न के समान लक्षण जैसा दिखता है।

परिवर्तन लागू करने के बाद, :format उन URL में भी शामिल किया गया था जिनमें id नहीं था।