[英]Uninitialized Constant in Rails Controller
我的控制器中有以下內容:
class SurveysController < ApplicationController
def index
survey_provider = FluidSurveysProviders::SurveyProvider.new
contact_lists = survey_provider.get_lists()
@survey = Survey.new(contact_lists)
end
我收到此錯誤:
NameError in SurveysController#index
uninitialized constant SurveysController::FluidSurveysProviders
打擾一下Rails的煩惱,我確定我在這里遺漏了一些重要的東西。 但是在我看來,我試圖通過此行“初始化”常量:
survey_provider = FluidSurveysProviders::SurveyProvider.new
但這是引發錯誤的那一行,因為它沒有初始化。 我應該在哪里“初始化”提供者?
一旦require fluid_surveys_providers
(或類似的工具),請執行以下操作:
include FluidSurveysProviders
確保SurveyProvider用模塊FluidSurveysProviders包裝。 可能看起來像這樣
module FluidSurveysProviders
class SurveyProvider
...
end
end
如果它是一個ActiveRecord對象,請嘗試
class FluidSurveysProviders::SurveyProvider < ActiveRecord::Base
...
end
SurveyProvider
未正確加載。
app
目錄,例如app/lib/survey_provider.rb
。 然后, app
程序內的所有代碼將由Rails自動加載。 或者確保Rails的autoload_path中包含class SurveyProvider
的路徑。 在config / application.rb中
config.autoload_paths += %W(#{config.root}/lib) # where lib is directory to survery_provider
如果使用Rails 5,請注意在生產環境中禁用了自動加載功能。 檢查此鏈接以獲取更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.