यदि मेरे पास एक अलग नियंत्रक में एक विधि है जिसमें मैं लिख रहा हूं, और मैं उस विधि को कॉल करना चाहता हूं, तो यह संभव है, या मुझे उस विधि को उस पर ले जाने पर विचार करना चाहिए सहायक?किसी अन्य नियंत्रक से एक विधि को कॉल करना
उत्तर
आप तकनीकी रूप से उस पर अन्य नियंत्रक और कॉल विधियों का एक उदाहरण बना सकते हैं, लेकिन यह कठिन है, त्रुटि प्रवण और अत्यधिक अनुशंसित नहीं है।
यदि यह फ़ंक्शन दोनों नियंत्रकों के लिए आम है, तो शायद आपको ApplicationController
या आपके निर्माण के एक अन्य सुपरक्लस नियंत्रक में होना चाहिए।
class ApplicationController < ActionController::Base
def common_to_all_controllers
# some code
end
end
class SuperController < ApplicationController
def common_to_some_controllers
# some other code
end
end
class MyController < SuperController
# has access to common_to_all_controllers and common_to_some_controllers
end
class MyOtherController < ApplicationController
# has access to common_to_all_controllers only
end
फिर भी एक और तरीका यह करने के लिए के रूप में jimworm का सुझाव दिया, आम कार्यक्षमता के लिए एक मॉड्यूल का उपयोग करने के लिए है।
# lib/common_stuff.rb
module CommonStuff
def common_thing
# code
end
end
# app/controllers/my_controller.rb
require 'common_stuff'
class MyController < ApplicationController
include CommonStuff
# has access to common_thing
end
या एक 'मॉड्यूल' से शामिल है। – jimworm
'GoodSuggestion शामिल करें' धन्यवाद @ jimworm – edgerunner
अन्य नियंत्रक का एक उदाहरण बनाना ???? Arrrrrrgggh (वास्तव में)। एक और विकल्प, चूंकि सवाल इतना अस्पष्ट है: मॉडलों को कोड ले जाएं। – nathanvda
प्रयास करें और उत्तरोत्तर आप अपने मॉडल के लिए तरीकों के लिए कदम अगर वे एक मॉडल तो एक सहायक पर लागू नहीं हैं और यह अभी भी पहुँचा कहीं ApplicationController
मैं कभी भी नियंत्रक से कोड को एक सहायक में नहीं ले जाऊंगा, बल्कि '/ lib' में रहने वाले मॉड्यूल के बजाय। केवल देखने-कोड को सहायक में रहना चाहिए। – nathanvda
एक सहायक में कुछ डालने केवल थोड़ी देर तक रहता है। आप उस बिंदु पर पहुंच जाएंगे जहां आपको किसी मॉड्यूल में सब कुछ एक lib/फेंकने की ज़रूरत नहीं है, वह भी बहुत अच्छा नहीं है। –
मैं सहायकों पर मॉड्यूल का उपयोग करना पसंद करता हूं, क्योंकि वे सच हैं ओओ, मैं उन्हें इच्छानुसार शामिल/विस्तारित कर सकता हूं। मैं सामान को एक साथ समूहित कर सकता हूं जिसका वास्तविक अर्थ है। हेल्पर्स सिर्फ बाल्टी हैं। मैं केवल उनसे संबंधित तरीकों के लिए उपयोग करने की सलाह देता हूं। सुनिश्चित नहीं है कि आप 'बिंदु पर पहुंच जाएंगे' के साथ आपका क्या मतलब है। – nathanvda
मैं नहीं में डाल करने की जरूरत है अपनी समस्या के बारे में कोई जानकारी जानिए, लेकिन शायद आपके मामले में पथ समाधान हो सकते हैं (विशेष रूप से यदि इसकी रीस्टफुल एक्शन)।
आप आवश्यकता कुछ डीबी संचालन से संबंधित है, तो आप एक आम समारोह (वर्ग विधि) कि मॉडल के अंदर लिख सकते हैं। मॉडल के अंदर परिभाषित कार्य सभी नियंत्रकों के लिए सुलभ हैं। लेकिन यह समाधान सभी मामलों पर लागू होता है।
- 1. नोड जेएस - एक ही विधि में किसी अन्य विधि से एक विधि को कॉल करना
- 2. PHP: किसी अन्य वर्ग की विधि को कॉल करना
- 3. ऑटोहॉटकी: किसी अन्य स्क्रिप्ट से एक स्क्रिप्ट को कॉल करना
- 4. किसी अन्य वर्ग से एक चर को कॉल करना PHP
- 5. किसी अन्य ऐप से एक ऐप को कॉल करना
- 6. किसी टेम्पलेट से मॉडल पर एक विधि को कॉल करना
- 7. रेल में कंसोल से अनुप्रयोग नियंत्रक विधि को कॉल करना
- 8. .NET MVC - किसी अन्य नियंत्रक कार्रवाई से नियंत्रक क्रिया को कॉल करें
- 9. किसी अन्य .bat फ़ाइल से बीएटी फ़ाइल को कॉल करना
- 10. किसी अन्य .js फ़ाइल से जावास्क्रिप्ट फ़ंक्शन को कॉल करना
- 11. क्या हम एएसपीनेट एमवीसी में किसी अन्य नियंत्रक से नियंत्रक की विधि को कॉल कर सकते हैं?
- 12. किसी अन्य विधि से एक गैर स्टेटिक सदस्य विधि को कॉल करें
- 13. किसी अन्य नियंत्रक
- 14. किसी अन्य नियंत्रक की कार्रवाई को कॉल करना - फ़ाइल अपलोडर के लिए डिज़ाइन विचार - एमवीसी 4
- 15. jQuery $। नियंत्रक में विधि को कॉल करें
- 16. किसी अन्य .js फ़ाइल में जावास्क्रिप्ट विधि को कॉल करें
- 17. Mojolicious में किसी अन्य नियंत्रक में कार्रवाई कैसे कॉल करें?
- 18. किसी अन्य व्यू कंट्रोलर से कॉलिंग विधि
- 19. केकफ़्पी में किसी अन्य नियंत्रक में नियंत्रक कार्रवाई को कैसे कॉल करें?
- 20. क्या नियंत्रक विधि से प्रोग्रामर रूप से रेजर कंपाइलर को कॉल करना संभव है?
- 21. जावास्क्रिप्ट से बीएचओ विधि को कॉल करना?
- 22. क्या किसी अन्य विधि से तर्क [] को पास करने वाली मुख्य विधि को कॉल करना संभव है?
- 23. एक नियंत्रक को एक अन्य नियंत्रक को रीडायरेक्ट करें
- 24. किसी पृष्ठ पर वेब पेज को किसी अन्य पृष्ठ पर जावास्क्रिप्ट से कॉल करना
- 25. किसी अन्य ऐप से किसी वर्ग की विधि को कॉल करने के लिए कैसे करें
- 26. किसी अन्य विधि से विधि में पॉइंटर को कैसे कॉल करें
- 27. एनएसटीमर विधि को कॉल करना
- 28. अन्य नियंत्रक
- 29. किसी अन्य विधि से पहले एक विधि को रोकने के लिए
- 30. व्यूमोडेल से व्यू कोड में एक विधि को कॉल करना?
क्या आप किसी अन्य नियंत्रक की विधि को कॉल करके हल करने के लिए समस्या को जोड़ सकते हैं? वर्तमान में यह बहुत अस्पष्ट है, और समाधान समस्या पर निर्भर करेगा। – mliebelt
दरअसल, कृपया बताएं कि आप क्या हल करने की कोशिश कर रहे हैं। साझा विधि क्या कर रही है? – nathanvda