Config.autoload_paths (मैं रेलगाड़ी 3.1.3 पर हूँ) के अलावा, मेरे लिए क्या काम किया गया था, इस तरह एक इनिशियलाइज़र बनाना था:
require 'my_module'
include MyModule
इस तरह मैं mymodule तरीकों को कहीं से भी और क्लास के तरीकों Model.mymodule_method
या उदाहरण के तरीकों के रूप में कह सकता हूंmymodel.mymodule_method
हो सकता है कि कुछ विशेषज्ञ इसके निहितार्थ की व्याख्या करें। अब तक, इसे अपने जोखिम पर उपयोग करें।
संपादित करें: बाद में, मुझे लगता है कि एक बेहतर approuch होगा:
इस तरह एक इनिशलाइज़र बनाएँ:
require ‘my_module’
मॉड्यूल को शामिल करें जहां जरूरत हो, इस तरह से:
1) यदि आप इसे "क्लास मेथड्स" के रूप में उपयोग करना चाहते हैं, तो "विस्तार" का उपयोग करें:
class Myclass < ActiveRecord::Base
extend MyModule
def self.method1
Myclass.my_module_method
end
end
2) यदि आप इसे "इंस्टेंस मेथड्स" के रूप में उपयोग करना चाहते हैं, तो इसे कक्षा परिभाषा के अंदर शामिल करें:
class Myclass < ActiveRecord::Base
include MyModule
def method1
self.my_module_method
end
end
3) याद रखें कि आपके लोड पथ में include MyModule
एक फ़ाइल को संदर्भित करता है my_module.rb
जिसे पहले आवश्यक होना चाहिए