रेल 3 में, आप फ़्लैश सेट करने के लिए सीधे redirect_to
पर गुण प्राप्त कर सकते हैं। उदाहरण के लिए:रेल 3 में एक रीडायरेक्ट_to कॉल में कस्टम फ्लैश कुंजियों को कैसे अनुमति दें
redirect_to root_path, :notice => "Something was successful!"
हालांकि, यह केवल :alert
और :notice
कुंजी के साथ काम करता है;
redirect_to root_path, :flash => { :error => "Something was successful!" }
वहाँ इसे बनाने के लिए इतना है कि कस्टम कुंजी (जैसे :error
, ऊपर) redirect_to
के लिए यह निर्धारित किए बिना ही पारित किया जा सकता कोई तरीका है: आप कस्टम कुंजी का उपयोग करना चाहते हैं, आप एक अधिक वर्बोज़ संस्करण का उपयोग करने के लिए है :flash => {}
में?
module ActionController
module Flash
extend ActiveSupport::Concern
included do
delegate :alert, :notice, :error, :to => "request.flash"
helper_method :alert, :notice, :error
end
protected
def redirect_to(options = {}, response_status_and_flash = {}) #:doc:
if alert = response_status_and_flash.delete(:alert)
flash[:alert] = alert
end
if notice = response_status_and_flash.delete(:notice)
flash[:notice] = notice
end
if error = response_status_and_flash.delete(:error)
flash[:error] = error
end
if other_flashes = response_status_and_flash.delete(:flash)
flash.update(other_flashes)
end
super(options, response_status_and_flash)
end
end
end
आप, ज़ाहिर है, अधिक कुंजियां :error
अलावा जोड़ सकते हैं:
बहुत बढ़िया कर सकते हैं! इसे स्वीकार किए गए उत्तर के रूप में चिह्नित करना क्योंकि इसका उपयोग आगे बढ़ना चाहिए। –
मैं एक ऐसे मुद्दे पर चल रहा हूं जहां मैंने फ़्लैश प्रकार कहा: लॉगिन लेकिन मेरे पास "जादूगर मणि" से एक सहायक विधि लॉगिन भी है। हो सकता है कि उस समय फ़्लैश प्रकार जोड़ना इतना अच्छा नहीं है? – dtc
प्रदर्शन के बारे में बात करना या एक ही व्यवहार को प्राप्त करने का सही तरीका, ** जाने का सबसे अच्छा तरीका क्या है: ** 1.- नए फ्लैश प्रकारों को जोड़ना ** जैसे 'add_flash_types: त्रुटि, ...' या ** 2.- फ्लैश ऑब्जेक्ट में नए हैंश जोड़ना ** के साथ ': flash => {: error => "अरे नहीं!" } '? –