क्या मैं रेक में सहायक तरीके का उपयोग कर सकता हूं?मैं रेक में मददगारों का उपयोग कैसे करूं?
उत्तर
हाँ, आप कर सकते हैं। आपको बस सहायक फ़ाइल की आवश्यकता होती है और उसके बाद उस सहायक को अपनी रेक फ़ाइल के अंदर शामिल करें (जो वास्तव में एक सहायक एक मिश्रण है जिसे हम शामिल कर सकते हैं)।
module ApplicationHelper
def hi
"hi"
end
end
इसलिए यहाँ मेरी रेक फ़ाइल की सामग्री है:
require "#{Rails.root}/app/helpers/application_helper"
include ApplicationHelper
namespace :help do
task :hi do
puts hi
end
end
और यहाँ
उदाहरण के लिए, यहाँ मैं एक application_helper फ़ाइल एप्लिकेशन/सहायकों के अंदर निर्देशिका है कि इस में शामिल है मेरे टर्मिनल पर परिणाम है:
god:helper-in-rake arie$ rake help:hi
hi
जैसा कि lfender6445 ने उल्लेख किया है, include ApplicationHelper
का उपयोग करके, एरी के उत्तर में, आपके कार्यों वाले शीर्ष-स्तरीय दायरे को प्रदूषित करने जा रहा है।
यहां एक वैकल्पिक समाधान है जो असुरक्षित दुष्प्रभाव से बचाता है।
सबसे पहले, हमें app/helpers
में हमारे कार्य सहायकों को रखना चाहिए। Codefol.io पर "Where Do I Put My Code?" से उद्धरण के लिए:
रेल "सहायक" बहुत मददगार हैं। वे स्वचालित रूप से विचारों में शामिल होते हैं, लेकिन नियंत्रकों या मॉडल में नहीं। यह उद्देश्य पर है।
चूंकि app/helpers
देखने में मदद करने वालों के लिए है, और रेक कार्य नहीं हैं, हमें अपने कार्य सहायकों को कहीं और रखना चाहिए। मैं lib/task_helpers
की अनुशंसा करता हूं।
lib/task_helpers/application_helper.rb
में:
module ApplicationHelper
def self.hi
"hi"
end
end
अपने Rakefile
में या lib/tasks
में एक .rake
फ़ाइल:
require 'task_helpers/application_helper'
namespace :help do
task :hi do
puts ApplicationHelper.hi
end
end
मुझे यकीन है कि अगर सवाल मूल रूप से रेक कार्यों में दृश्य सहायकों सहित के बारे में पूछ रहा था नहीं हूँ, या रेक कार्यों के लिए बस "सहायक तरीके"। लेकिन दोनों विचारों और कार्यों में एक सहायक फ़ाइल साझा करना आदर्श नहीं है। इसके बजाय, उन मददगारों को लें जिन्हें आप दोनों दृश्यों और कार्यों में उपयोग करना चाहते हैं, और उन्हें एक अलग निर्भरता में ले जाएं जो एक दृश्य सहायक में और एक कार्य सहायक में शामिल है।
यह मेरे लिए हल हो गया - यदि आप सहायक विधि के लिए तर्क पारित करना चाहते हैं, तो आप इसे तब तक करने में असमर्थ होंगे जब तक आप –
किए गए दायरे को सॉर्ट नहीं करते अगर इसे 'application_helper' कहने का अच्छा विचार है।आरबी' क्योंकि यह भ्रम पैदा कर सकता है। शायद बस 'lib/task_helpers.rb' बेहतर होगा। –
यह अच्छा और सुरक्षित तरीका है ... धन्यवाद .... – prasanthrubyist
- 1. मैं रेल में मददगारों का परीक्षण कैसे करूं?
- 2. मैं रेक कार्य पर "होट" का उपयोग कैसे करूं?
- 3. मैं रेक रेक से आईआरबी कंसोल कैसे शुरू करूं?
- 4. मैं एक रेक कार्य में RAILS_ENV को कैसे मजबूर करूं?
- 5. मैं रेक में वर्तमान नेमस्पेस कैसे प्राप्त करूं?
- 6. मैं रेक
- 7. सिनात्रा का उपयोग करते समय मैं एक मणि से रेक कार्यों को कैसे आयात करूं?
- 8. मैं AVAssetWriter का उपयोग कैसे करूं?
- 9. मैं बूस्ट बीसीपी का उपयोग कैसे करूं?
- 10. मैं Form.ShowDialog का उपयोग कैसे करूं?
- 11. मैं cx_freeze का उपयोग कैसे करूं?
- 12. मैं QTextBlock का उपयोग कैसे करूं?
- 13. मैं PerformanceCounterType औसतTimer32 का उपयोग कैसे करूं?
- 14. मैं PackageManager.addPreferredActivity() का उपयोग कैसे करूं?
- 15. मैं सिंडिकेशन फीड का उपयोग कैसे करूं?
- 16. मैं accepts_nested_attributes_for का उपयोग कैसे करूं?
- 17. मैं TLBIMP.EXE का उपयोग कैसे करूं?
- 18. मैं नवीनतम ओपनजीएल का उपयोग कैसे करूं?
- 19. मैं ड्रोल प्लानर का उपयोग कैसे करूं?
- 20. मैं IValidatableObject का उपयोग कैसे करूं?
- 21. मैं OpenCV MatchTemplate का उपयोग कैसे करूं?
- 22. मैं पीडीबी फाइलों का उपयोग कैसे करूं
- 23. मैं strcasestr() का उपयोग कैसे करूं?
- 24. मैं सशर्त ऑपरेटर का उपयोग कैसे करूं?
- 25. मैं chrome.tabs.onUpdated.addListener का उपयोग कैसे करूं?
- 26. मैं एसवीएन का उपयोग कैसे शुरू करूं?
- 27. मैं ProGuard का उपयोग कैसे करूं?
- 28. मैं ऐप्पल कीचेन का उपयोग कैसे करूं?
- 29. मैं एंड्रॉइड एक्सेलेरोमीटर का उपयोग कैसे करूं?
- 30. मैं Mono.WebBrowser का उपयोग कैसे करूं?
सावधान रहें, रेक के भीतर 'शामिल' का उपयोग करके सावधान रहें, आप अनजाने में 'ऑब्जेक्ट' के दायरे को प्रदूषित करते हैं, जो बाद में आयातित रेक कार्यों को समान तरीकों को साझा करने के लिए सफल होता है। – lfender6445
बाद में आयातित रेक कार्यों से आपका क्या मतलब है? जैसा कि अन्य। रेक फ़ाइलों से रेक कार्यों में भी एप्लीकेशनहेल्पर विधियों तक पहुंच होगी? –
यह कहा गया है और कहा गया है, लेकिन इसे पर्याप्त नहीं कहा जा सकता है ... आप * वास्तव में * ऐसा नहीं करना चाहिए, खासकर एक रेल ऐप (जो बड़े पैमाने पर रेक का उपयोग करते हैं) में नहीं करना चाहिए। यह वैश्विक 'ऑब्जेक्ट' के साथ गड़बड़ करता है, जिसमें दूरगामी प्रभाव हो सकते हैं जो ट्रैक करना बेहद मुश्किल हो सकता है। बस इस पर दो घंटे खो गए ... – nrser