2013-06-09 29 views
29

के लिए रेल 4 अनियमित स्थिरांक एक नई रेल 4 एप में मुझे मॉड्यूल के लिए एक अनियमित स्थिर त्रुटि मिल रही है। मॉड्यूल ProcessBill नाम पर है और lib/process_bill.rbमॉड्यूल

कंसोल त्रुटि में स्थित है:

ActionController::RoutingError (uninitialized constant BillsController::ProcessBill): 

नियंत्रक कोड:

class BillsController < ApplicationController 

    include ProcessBill 

lib/process_bill.rb

module ProcessBill 

उत्तर

54

क्या आपने अपने ऑटोलोड लोड में lib जोड़ा है? यह रेल 3 में जरूरी हो गया था, मुझे यकीन है कि अगर यह अभी भी रेल के लिए आवश्यक है नहीं कर रहा हूँ 4.

इस config/application.rb में वर्ग परिभाषा में जोड़ने का प्रयास करें -

config.autoload_paths += %W(#{config.root}/lib) 
3

इस लाइन को अपने नियंत्रक के शीर्ष पर जोड़ने का प्रयास करें:

require "#{Rails.root}/lib/process_bill.rb" 
+3

आप, साथ ही " 'process_bill' की आवश्यकता होती है सकते हैं, के रूप में यहाँ मेरी application.rb से प्रासंगिक हिस्सा है 'lib' निर्देशिका पहले से ही लोड पथ पर है। –

+6

देखभाल करें, यह ऑटो रीलोडिंग को मारता है! – reto

23

इस समस्या को भी lib निर्देशिका के साथ मैं था रेल 5 के साथ और यह उत्पादन में दिखाई दिया लेकिन विकास में नहीं। इसे ठीक करने के लिए आपको lib निर्देशिका को eager_load_paths में जोड़ना होगा।

config.autoload_paths << "#{Rails.root}/lib" 
config.eager_load_paths << "#{Rails.root}/lib" 
+3

यह आलेख बताता है कि क्यों: http://collectiveidea.com/blog/archives/2016/07/22/solutions-to-potential -अपग्रेड-समस्या-इन-रेल -5/ – lucke84

+1

यह रेल 4 में भी काम करता है –

1

यह भी अपने application.rb फ़ाइल पर रेल 5 में काम करेंगे:

config.autoload_paths << Rails.root.join('lib') 
    config.autoload_paths << Rails.root.join('lib/notifier') 
संबंधित मुद्दे