में क्यों काम नहीं करते हैं, मैं अपने नियंत्रक को कुछ उदाहरण चर जोड़ना चाहता हूं, क्योंकि प्रश्न में चर एक से अधिक क्रियाओं के भीतर से आवश्यक हैं। हालांकि, नीचे दिया गया उदाहरण काम नहीं करता है जैसा कि मैं उम्मीद करता हूं।मेरे नियंत्रक के आवृत्ति चर दृश्यों (रेल)
class ExampleController < ApplicationController
@var1 = "Cheese"
@var2 = "Tomato"
def show_pizza_topping
# What I want is the above instance vars from within the view here
end
def show_sandwich_filling
# What I want is the above instance vars from within the view here
end
end
जैसा कि मैं इसे समझता हूं, रेल नियंत्रक से इंस्टेंस चर लेता है और उन्हें दृश्य में उपलब्ध कराता है। यदि मैं क्रिया विधियों के भीतर समान चर निर्दिष्ट करता हूं, तो यह ठीक काम करता है - लेकिन मैं इसे दो बार नहीं करना चाहता हूं। मेरा रास्ता क्यों काम नहीं करता है?
(नोट: यह एक बकवास उदाहरण का एक सा है, लेकिन मुझे आशा है कि यह बनाता है भावना)
संपादित करें: When do Ruby instance variables get set?
संपादित करें 2: मैं इस सवाल का जवाब यहाँ मिल गया है जब पहले_फिल्टर और प्रारंभिक विधि जैसे फ़िल्टर का उपयोग करने का सबसे अच्छा समय है?
हां यह करता है, धन्यवाद। हालांकि, इसे पोस्ट करने के कुछ ही समय बाद मुझे एक और जवाब मिला (मैंने इसे प्रतिबिंबित करने के लिए प्रश्न अपडेट किया)। पहले_फिल्टर और/या प्रारंभ करने का सबसे अच्छा समय कब होता है? –
मैं कहूंगा कि आपको पहले_फिल्टर का उपयोग करना चाहिए यदि यह किसी भी तरह का सेट अप काम है जिसे कई क्रियाओं पर काम करना है। – theIV
टिप्पणी का एक उदाहरण के रूप में मैंने अभी छोड़ा है, जब कोई यह सत्यापित करता है कि कोई व्यक्ति लॉग इन है, तो आपके पास आमतौर पर 'एप्लिकेशन कंट्रोलर' में एक विधि हो सकती है और उपयोगकर्ता को लॉग इन करने की आवश्यकता वाले किसी भी क्रिया के लिए 'first_filter' लागू हो सकता है। प्रत्येक क्रिया में उस कोड को समझने के लिए समझें जिसमें किसी को लॉग इन करने की आवश्यकता है। – theIV