2010-09-21 9 views
18

यह कुछ प्रश्न पहले ही एक प्रश्न के समान अविश्वसनीय लगता है, लेकिन समाधान अब काम नहीं कर रहा है।बटन_to: एक्शन => 'नष्ट' 'शो' के लिए दिखता है

मैं रेल ऐप बना रहा हूं, और मैं एक बटन नियंत्रक को एक अलग नियंत्रक में नष्ट करने की कोशिश कर रहा हूं।

कोड मैं बटन के लिए है

 
<%= button_to "delete", :controller => :meals, 
          :action => 'destroy', 
          :recipe_id => recipe.id, 
          :method => :post > 

जब मैं हटाएँ बटन पर क्लिक, मैं एक जो वर्तमान meal_id है 'कोई भोजन/3 के लिए मैच' हो जाता है। कार्रवाई और शो जो मौजूद नहीं है और मौजूद नहीं होना चाहिए का अनुरोध:

भोजन में नष्ट नियंत्रक इस

 
    def destroy 
    @meal = Meal.where("current_user.id => ? AND recipe_id => ?", current_user.id, params[:recipe_id]).first 
    @meal.destroy 

    respond_to do |format| 
     format.html { redirect_to :controller => "user" , :action => "show" } 
     format.xml { head :ok } 
    end 
    end 

ऐसा लगता है जैसे कि button_to पूरी तरह से अनदेखी कर रहा है की तरह लग रहा है।

+0

आप किस संस्करण संस्करण का उपयोग करते हैं? – shingara

+0

मैं rails3 – pedalpete

उत्तर

35

और आप किसके लिए रूट.आरबी का हिस्सा दिखते हैं? क्योंकि यदि आप map.resources का उपयोग करते हैं तो नष्ट करें जैसा कि शो के समान पथ है लेकिन :method => :delete (जो फ़ॉर्म द्वारा लागू वर्चुअल क्रिया है और _method = हटाएं param)।

इस प्रयास करें:

<%= button_to "delete", {:controller => :meals, 
     :action => 'destroy', :id => recipe.id }, :method => :delete %> 

या यदि recipeMeal वर्ग तो

<%= button_to "delete", @recipe, :method => :delete %> 

मन कर्ली कोष्ठक का उदाहरण है।

+0

का उपयोग कर रहा हूं, मुझे पूरा यकीन नहीं है कि आप क्या कह रहे हैं। मेरा मार्ग "संसाधन: भोजन" है। मैंने बदल दिया: विधि =>: पोस्ट करें: method =>: हटाएं लेकिन कुछ कारणों से जो अब – pedalpete

+0

बनाने के लिए इंगित कर रहा है यदि yoyu संसाधन हैं: भोजन तब 'आईडी 'मार्ग से अपेक्षित है, न कि' recipe_id'। कौन से मार्ग पंजीकृत हैं यह देखने के लिए बस 'रेक मार्ग' चलाएं। – gertas

+0

मैंने बटन_to से recipe_id को हटा दिया लेकिन मुझे अभी भी वही नो रूट मिलान "/ भोजन/3" त्रुटि मिलती है। मैं रेक मार्ग चला गया, और मेरे भोजन मार्ग में "भोजन DELETE /meals/:id(.:format) {: action =>" नष्ट करें ", नियंत्रक =>" भोजन "}। मेरा बटन_to फॉर्म क्रिया" भोजन/3 है ? method = delete ", जो मुझे सही लगता है। – pedalpete

10

मुझे पता है कि यह उत्तर के लिए बहुत देर हो चुकी है लेकिन उम्मीद है कि यह किसी की मदद कर सकता है (रेल 4 का उपयोग करके)।

<%= button_to "delete", meal_path(:id => recipe.id), :method => :delete %> 
संबंधित मुद्दे