मैं हाल ही में इस समस्या का सामना किया: Rails 3 link_to (:method => :delete) not workingरेल 3 लिंक_ जनरेटर के लिए: पोस्ट,: डाल, और: हटाएं?
जो में मैं क्यों मेरे link_to 'test', test_path(:test => test), :method => :post
काम कर रहा था उलझन में था (कारण है कि यह करने के बजाय हो रही थी पोस्टिंग)। चूंकि उपर्युक्त पोस्ट से पता चलता है, ऐसा इसलिए था क्योंकि मेरे पास रेल जावास्क्रिप्ट फ़ाइलें नहीं थीं, जो :post
, :put
& :delete
के लिए गतिशील रूप से ऑन-द-फ्लाई बनाने का काम करती है।
मुझे यकीन नहीं है कि मैं विशेष रूप से जावास्क्रिप्ट पर निर्भर करता हूं कि यह मेरे लिए ऐसा करे, क्योंकि मैं चाहता हूं कि मेरा ऐप जावास्क्रिप्ट अक्षम के साथ पूरी तरह कार्यात्मक हो; यह है कि मैं कैसे विकसित करना चाहता हूं (इसलिए मुझे पता है कि मेरे पास मेरी सभी रेल प्रोग्रामिंग कार्यक्षमता सही तरीके से काम करती है), और जब मैं अपने ऐप को जावास्क्रिप्ट के साथ तार करता हूं, तो मुझे इस कार्यक्षमता को डुप्लिकेट करने की चिंता करने की ज़रूरत नहीं है, क्योंकि मैं आमतौर पर मिटा देता हूं रेल द्वारा उत्पन्न स्टॉक जावास्क्रिप्ट फ़ाइल।
मैंने कहीं पढ़ा है कि, तकनीकी रूप से, हाइपरलिंक्स (एंकर तत्व) केवल जीईटी अनुरोधों के लिए उपयोग किया जाना चाहिए, और बटन (फॉर्म तत्वों के भाग के रूप में) अन्य विधियों के लिए उपयोग किया जाना चाहिए।
तो, मेरे दो सवाल:
- वहाँ एक मणि बाहर वहाँ है कि एक ऐसा फ़ॉर्म तत्व को मेरे विचार में किसी भी
link_to ... :method =>
पुनर्लेखन जाएगा ऑन-द-मक्खी जब अपने विचार प्रदान कर रहे हैं? - यदि नहीं, तो मैं अपना खुद का लिखने के लिए दृश्य पार्सर में कैसे लगाऊंगा?
= link_to 'Test Link', some_path(:with => some_resource), :method => :post
... और मेरी गाया HTML आउटपुट इस के साथ बाहर आने के लिए है: (Haml का उपयोग कर, अधिमानतः)
अनिवार्य रूप से, मैं चाहूँगा कि मेरी Haml फ़ाइल में इस लिखना है
<form action="some_path?with=some_resource" method="post">
<!-- insert appropriate _method hidden field here -->
<!-- add appropriate csrf token and whatnot -->
<button type="submit">Test Link</button>
</form>
... ताकि सभी link_to
परिभाषित तरीकों के साथ सहायकों जावास्क्रिप्ट बिना काम करेंगे (इस प्रकार, सादा लिंक जिसका क्रिया है प्राप्त कोई असर नहीं पड़ेगा)?
मैं भी इस सवाल का क्यों भाग के बारे में कोई विचार, सराहनीय होगा विशेष रूप से क्यों रेल टीम इस कार्यक्षमता शुद्ध एचटीएमएल के माध्यम से ऐसा करने के बजाय जावास्क्रिप्ट से बंधा रखने का फैसला किया?
महान:
आप प्रपत्र
button_to
द्वारा प्रदान की गई किया जा रहा है और अधिक शैली/नियंत्रण की जरूरत है, तो आप कुछ इस तरह कर सकते हैं। यह मुझे काम करने के लिए कुछ देता है। धन्यवाद! – neezer