2011-02-08 14 views
12

मेरे पास एक नियंत्रक है जो एक संपर्क पृष्ठ पर हमारे संपर्क को नियंत्रित करता है। routes.rb फ़ाइल के अंदर मेरे पास एक पंक्ति है जो match '/contact', :to => 'feedback#new' कहती है। अब जब फॉर्म सही ढंग से भर जाता है, तो सब कुछ ठीक काम करता है; यूआरएल '/ संपर्क' है। हालांकि, जब फॉर्म सही ढंग से भर नहीं जाता है, तो मेरा नियंत्रक renders 'new' और यूआरएल '/contact' से '/feedback' में बदल जाता है। क्या कोई मुझे बता सकता है कि ऐसा क्यों होता है और मैं इसे कैसे ठीक कर सकता हूं ताकि यदि सत्यापन ट्रिगर हो और पृष्ठ प्रस्तुत किया गया हो, तो यूआरएल /contact होगा और /feedback नहीं होगा? धन्यवाद!रेल: जब 'नया' प्रस्तुत किया जाता है तो कस्टम यूआरएल क्यों बदलता है?

मेरे नियंत्रक कोड: enter image description here

+1

आप अपने 'config/routes.rb' फ़ाइल की सामग्री को सूचीबद्ध कर सकते हैं? [संपादित करें] दृश्य कोड भी मदद करेगा। यदि आप 'form_for (@feedback) 'का उपयोग कर रहे हैं, तो जब फॉर्म पोस्ट करते हैं, तो यह' प्रतिक्रिया 'पर एक पोस्ट कर रहा है क्योंकि रेल रीस्टफुल यूआरएल का उपयोग करता है। याद रखें कि यूआरएल नियंत्रकों और कार्यों के मार्गों पर आधारित हैं, न कि आपके द्वारा प्रस्तुत किए जा रहे दृश्य का नाम। 'फीडबैक कंट्रोलर # बनाने' की संभावना '/ फीडबैक' ('रेक रूट्स' की जांच करें) –

+0

आप सही हैं 'फीडबैक कंट्रोलर # create'' को 'फीडबैक' मार्ग पर मैप किया गया है। तो मेरे उपरोक्त प्रश्न का उत्तर देने के लिए मुझे क्या करना चाहिए? – agentbanks217

+0

क्या आपने कभी यह पता लगाया है? मैं इसके साथ संघर्ष कर रहा हूं। – skaz

उत्तर

9
match '/contact', :to => 'feedback#new' 

कि मार्ग केवल FeedbackController#new करने के लिए /contact से मेल खाएगी।

आप "पोस्ट" भाग से मेल में जोड़ना चाहते हैं जाएगा FeedbackController#create

match '/contact', :to => 'feedback#create', :via => :post, :as => :post_contact 
# change :as => to whatever path for this you'd like to use, ex :as => :create_contact 

आपका प्रपत्र अब बस डिफ़ॉल्ट form_for का उपयोग करने से पथ बनाने की कोशिश करेंगे

= form_for(@feedback), :url => post_contact_path do |f| 

के लिए बदल जाएगा आपके routes.rb में resources। और, मुझे लगता है कि मार्ग resources :feedback है जो निश्चित रूप से ऐसे मार्ग बनाएगा जो /feedback जैसा दिखते हैं।

+1

बस एफवाईआई, मुझे रेलवे 3 में # नया मार्ग पर ': = = = get: get' जोड़ना पड़ा। – Sooie

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

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