मैं क्वेरी पैरामीटर और डेटाबेस में डेटा के संयोजन के आधार पर एक नियंत्रक कार्रवाई से दूसरे सशर्त रूप से प्रेषण करने में सक्षम होना चाहता हूं।एक HTTP नियंत्रक के बिना किसी अन्य नियंत्रक कार्रवाई से एक नियंत्रक कार्रवाई चलाने का सही तरीका क्या है?
क्या मैं अभी की तरह कुछ है:
class OldController < ApplicationController
def old_controller_action
if should_use_new_controller
new_params = params.dup
new_params[:controller] = "new_controller_action"
redirect_to new_params
return
end
# rest of old and busted
end
end
class NewController < ApplicationController
def new_controller_action
# new hotness
end
end
यह सिर्फ ठीक काम करता है, लेकिन यह एक HTTP रीडायरेक्ट, जो धीमी है जारी करता है। मैं वही काम करने में सक्षम होना चाहता हूं, लेकिन उसी HTTP अनुरोध के भीतर।
क्या ऐसा करने का कोई साफ तरीका है?
संपादित करें: बकाया किसी ऐसे व्यक्ति के पास जाएगा जो मुझे ऐसा करने का एक साफ तरीका दिखा सकता है जो नियंत्रकों और उनके कार्यों को अपेक्षाकृत छूटे हुए (रीडायरेक्ट कोड के अलावा) छोड़ देता है।
हाँ, मैंने इसके बारे में भी सोचा था, हालांकि यह एक कोड संगठन परिप्रेक्ष्य से एक बहुत ही रोमांचक विकल्प नहीं है। –
यह वास्तव में ठीक है क्योंकि यह दो स्थानों से बुलाया जा सकता है जो आसानी से टेस्टेबल –