ठीक है, तो मुझे मेरी समस्या का समाधान मिला। मुझे स्थिति here पर बहुत अच्छी तरह से लिखा गया। मेरे कार्यान्वयन इस तरह दिखता है:
private
def redirect_post(redirect_post_params)
controller_name = redirect_post_params[:controller]
controller = "#{controller_name.camelize}Controller".constantize
# Throw out existing params and merge the stored ones
request.parameters.reject! { true }
request.parameters.merge!(redirect_post_params)
controller.process(request, response)
if response.redirected_to
@performed_redirect = true
else
@performed_render = true
end
end
तो मैं कहा जाता है इस तरह इस विधि:
redirect_post :controller => 'registrations', :action => 'order', :_method => 'put', :authenticity_token => params[:authenticity_token]
तो मैं एक पोस्ट अनुरोध करने वाले (redirect_post
का प्रयोग करके) द्वारा 'झूठे' पुट अनुरोध करने में सक्षम था और उसके बाद _method
परम को 'put' असाइन करना। यदि आप सामान्य put
अनुरोध पर देखते हैं तो यह परम के साथ एक फॉर्म से post
है। तो यह थोड़ा सा हैक लेकिन यह काम पूरा हो जाता है।
इसके अलावा, आपको यह सुनिश्चित करना होगा कि जब आप redirect_post
पर कॉल करते हैं तो आपके हैश के मान स्ट्रिंग होते हैं अन्यथा त्रुटियां फेंक दी जाएंगी।
'नियंत्रक.प्रोसेस 'अब रेल में काम नहीं करता है 4 – josal