रेल 4: पहले_फिल्टर बनाम पहले_एक्शन


340

रेल में> 4.0.0 जनरेटर before_actionनहीं के साथ CRUD संचालन बनाता है before_filter। ऐसा ही लगता है। तो इन दोनों में क्या अंतर है?

जवाबों:


521

हम कर सकते हैं के रूप में देखने के में ActionController::Base, before_actionसिर्फ एक है नई वाक्य रचना के लिए before_filter

हालाँकि सभी before_filtersवाक्यविन्यास रेल 5.0 में पदावनत हैं और उन्हें रीलों 5.1 में हटाया जाएगा


42
एक तरफ पदावनति का अर्थ है, लेकिन दूसरी तरफ रेल में एक अच्छा अभ्यास है और रूबी में एक विधि के लिए कई उपनाम रखने के लिए है ताकि आप अर्थ के नुकसान के बिना विभिन्न संदर्भों में इसका उपयोग कर सकें।
freemanoid

4
4.2 में वे इसे अपदस्थ नहीं कर रहे हैं, लेकिन इसे हतोत्साहित करने के बाद डॉक्स से हटा रहे हैं। edgeguides.rubyonrails.org/…
onetwopunch

17
यदि यह हतोत्साहित है, तो आप इसे क्यों नहीं रोकेंगे? बेवकूफ।
ग्रांट बिर्चमियर

4
@ जॉनीव्इटली - अपग्रेडेशन एपीआई को नहीं तोड़ता है। यह पूरे पदावनत की बात है।
ग्रांट बिर्चमियर

9
@ जॉनहिटली - स्पैमिंग एक कारण से है। किसी भी अच्छी तरह से अनुशासित परियोजना को पदावनत कार्यों का उपयोग नहीं करके पदावनति चेतावनियों को संबोधित करना चाहिए ।
ग्रांट बिर्चमियर

67

यह सिर्फ वाक्यविन्यास अंतर है, रेल एप्लिकेशन में सीआरयूडी है, और मूल रूप से नाम सूचकांक , नए , बनाने , दिखाने , अपडेट , संपादित करने , नष्ट करने के लिए सात क्रियाएं हैं ।

रेल 4 कार्रवाई से पहले फ़िल्टर करने से पहले सिंटैक्स को बदलने के लिए इसे डेवलपर के अनुकूल बनाती है ।

हम जिन क्रियाओं को घोषित करते हैं, उससे पहले__ कॉल कॉल विधि

before_action :set_event, only: [:show, :update, :destroy, :edit]

set_event एक ऐसा तरीका है जो शो, अपडेट, एडिट और नष्ट होने से पहले हमेशा कॉल करेगा।


31

यह सिर्फ नाम परिवर्तन है। before_actionअधिक विशिष्ट है, क्योंकि यह किसी कार्रवाई से पहले निष्पादित हो जाता है।


1

इससे पहले कि किसी भी कार्रवाई को अंजाम दिया जाए।

दोनों समान हैं। वे एक-दूसरे के लिए सिर्फ उर्फ ​​हैं क्योंकि उनका व्यवहार समान है।


-3

यह पता लगाने के लिए कि पहले_करण और पहले_फिल्टर के बीच क्या अंतर है, हमें कार्रवाई और फिल्टर के बीच अंतर को समझना चाहिए।

एक्शन एक कंट्रोलर का एक तरीका है, जिसे आप रूट कर सकते हैं। उदाहरण के लिए, आपका उपयोगकर्ता निर्माण पृष्ठ उपयोगकर्ताओं को नियंत्रित किया जा सकता है # नया - इस मार्ग में नया - नया क्रिया है।

फिल्टर नियंत्रक क्रियाओं के संबंध में चलते हैं - पहले, बाद में या उनके आसपास। ये विधियां नियंत्रक में प्रत्येक क्रिया के लिए आम डेटा को पुनर्निर्देशित या सेट करके कार्रवाई प्रसंस्करण को रोक सकती हैं।

रेल्स 4 -> _एक्शन

रेल 3 -> _फिल्टर

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.