2012-05-31 13 views
5

मैं दो लिंक लिखने के लिए अस्वीकार & कार्रवाई, को मंजूरी मैं कैसे सही मार्ग लिखने के लिए पता नहीं है, मेरी route.rbरेल 3.2, HTTP क्रिया के लिए रूट कैसे लिखें, और link_to में इसका उपयोग करें?

put 'approve_class_room/:id(.:format)', :to => 'class_room_member_ships#approve' 
put 'reject_class_room/:id(.:format)', :to => 'class_room_member_ships#reject' 

कोशिश कर रहा हूँ लेकिन,

लेकिन, रेक मार्गों में , मुझे मिलता है:

PUT /approve_class_room/:id(.:format) class_room_member_ships#approve 
PUT /reject_class_room/:id(.:format) class_room_member_ships#reject 

तो, सही लिंक_to पथ क्या होगा?

मेरी कड़ी

= link_to 'approve', approve_class_room_path 

है यह अभ्यस्त 'काम करते हैं, मैं:

undefined local variable or method `approve_class_room_path' 

ps: मैं LINK_TO के लिए कोशिश कर रहा हूँ AJAX का उपयोग कर, एक ही पृष्ठ में अनुमोदन करने के लिए काम करता है , AM क्या मैं सही रास्ते पर हूं? link_to पथ क्या होगा?

कोई विचार कृपया?

उत्तर

6

पहले, त्रुटि स्पष्ट करने के लिए आप named routes उपयोग करने की आवश्यकता:

put 'approve_class_room/:id(.:format)', :to => 'class_room_member_ships#approve', 
             :as => :approve_class_room 
put 'reject_class_room/:id(.:format)', :to => 'class_room_member_ships#reject', 
             :as => :reject_class_room 

फिर, एक PUT अनुरोध प्रदर्शन करने के लिए, आप अपने link_to कॉल में :method विकल्प शामिल करने की जरूरत:

link_to 'approve', approve_class_room_path, :method => :put 
link_to 'reject', reject_class_room_path, :method => :put 

आप एक 404 है कि बजाय एक PUT अनुरोध के GET अनुरोध में परिणाम हो रही है तो यह इसलिए क्योंकि :method => :put है विकल्प जावास्क्रिप्ट पर भरोसा किया। आपको यह सुनिश्चित करना होगा कि jquery-rails आपके ऐप में ठीक से एकीकृत है।

+0

धन्यवाद मैट, क्या आप नामित मार्गों में (।: प्रारूप) भाग को समझा सकते हैं? – simo

+0

चूंकि '(।: प्रारूप)' कोष्ठक में है, यह मार्ग के लिए यूआरएल स्ट्रिंग का एक वैकल्पिक हिस्सा है। "।" स्थिर है, जबकि "प्रारूप" वास्तविक विकल्प है। रेल "एचटीएमएल" प्रारूपित करने के लिए डिफ़ॉल्ट हैं, लेकिन यह आपको 'approve_class_room/5.xml',' approve_class_room/5.json' आदि तक पहुंचने की अनुमति देता है, यह मानते हुए कि आपने उन प्रकार के प्रारूपों को संभालने के लिए अपने रेल ऐप को कॉन्फ़िगर किया है। यदि आप हैंडलिंग में दिलचस्पी रखते हैं तो [answer_to] (http://apidock.com/rails/ActionController/MimeResponds/respond_to) और [answer_with] (http://apidock.com/rails/ActionController/MimeResponds/respond_with) देखें एकाधिक प्रारूप –

+0

धन्यवाद मैट, मैं उस – simo

1

यह है कि त्रुटि स्पष्ट नहीं हो सकता है, लेकिन जब से अनुरोध पुट है, तो आप उस link_to में निर्दिष्ट करना होगा:

= link_to 'approve', approve_class_room_path, :method => :put 

मार्ग के लिए, मैं इस जोड़ने लगता है कि त्रुटि दूर जाना होगा:

put 'approve_class_room/:id(.:format)', :to => 'class_room_member_ships#approve', :as => :approve_class_room 
+1

धन्यवाद, बिल, हालांकि आपका उत्तर सही है, मैंने पहली बार ": as =>: approve_class_room" भाग को नहीं देखा, केवल जब मैंने स्क्रॉल बार स्क्रॉल किया, तो मैं चाहता हूं कि मैं दो उत्तरों को सही के रूप में चिह्नित कर सकूं , तो यहां एक अप वोट है :-) – simo

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