2017-09-13 11 views
0

나는이 문제에 대해 몇 가지 주제를 찾았지만 아무 해결책도 찾지 못했습니다.레일스가 내 앱/서비스 (초기화되지 않은 상수)를 인식하지 못합니다.

"패 커"가 일종의 "사용자"일 때 - "사용자"에만 Devise 매개 변수가 있고 "패커"에 나머지가있는 경우 "패 커"등록 정보를 Mailchimp에 추가하려고합니다)

오류가 초기화되지 않은 상수입니다. 레일이 내 서비스를 인식하지 못하는 것 같습니다. 여기

내 # 응용 프로그램/모델/packer.rb

after_create :subscribe_to_newsletter 
after_update :subscribe_to_newsletter 
private 
def subscribe_to_newsletter 
    SubscribeToNewsletterService.new.call(self.user) if self.newsletter 
end 

및 다른 솔루션에 보면 내 # 응용 프로그램/서비스/subscribe_to_newsletter_service.rb

require "gibbon" 
class SubscribeToNewsletterService 
    def initialize 
    @gibbon = Gibbon::Request.new(api_key: ENV['MAILCHIMP_API_KEY']) 
    @list_id = ENV['MAILCHIMP_NEWSLETTER_LIST_ID'] 
    end 
    def call(user) 
    @gibbon.lists(@list_id).members.create(
     body: { 
     email_address: user.email, 
     status: "subscribed", 
     double_optin: false, 
     # merge_fields: { 
     # FNAME: @user.first_name, 
     # LNAME: @user.last_name 
     # } 
     } 
    ) 
    end 
end 

, 나는 또한 라인을 추가 in # config/application.rb

module Pyswebsitev1 
    class Application < Rails::Application 
    @config.autoload_paths += %W(#{config.root}/app/services) 
    config.i18n.default_locale = :en 
    end 
end 

레일즈 콘솔을 할 때 - ActiveSupport :: Dependenci es.autoload_paths 그 결과 나는 또한 서버를 재부팅하고, 번들은 "봄 정지"를 시도

"/Users/MaxBook/code/PackYourSkills/pyswebsitev1/app/assets", 
"/Users/MaxBook/code/PackYourSkills/pyswebsitev1/app/channels", 
"/Users/MaxBook/code/PackYourSkills/pyswebsitev1/app/controllers", 
"/Users/MaxBook/code/PackYourSkills/pyswebsitev1/app/controllers/concerns", 
"/Users/MaxBook/code/PackYourSkills/pyswebsitev1/app/helpers", 
"/Users/MaxBook/code/PackYourSkills/pyswebsitev1/app/jobs", 
"/Users/MaxBook/code/PackYourSkills/pyswebsitev1/app/mailers", 
"/Users/MaxBook/code/PackYourSkills/pyswebsitev1/app/models", 
"/Users/MaxBook/code/PackYourSkills/pyswebsitev1/app/models/concerns", 
"/Users/MaxBook/code/PackYourSkills/pyswebsitev1/app/policies", 
"/Users/MaxBook/code/PackYourSkills/pyswebsitev1/app/services", 
"/usr/local/Cellar/rbenv/1.0.0/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rails-assets-underscore-1.8.3/app/assets", 
"/usr/local/Cellar/rbenv/1.0.0/versions/2.3.1/lib/ruby/gems/2.3.0/gems/jquery-fileupload-rails-0.4.7/app/assets", 
"/usr/local/Cellar/rbenv/1.0.0/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/attachinary-98a895be22ed/app/controllers", 
"/usr/local/Cellar/rbenv/1.0.0/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rails_admin-1.2.0/app/assets", 
"/usr/local/Cellar/rbenv/1.0.0/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rails_admin-1.2.0/app/controllers", 
"/usr/local/Cellar/rbenv/1.0.0/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rails_admin-1.2.0/app/helpers", 
"/usr/local/Cellar/rbenv/1.0.0/versions/2.3.1/lib/ruby/gems/2.3.0/gems/jquery-ui-rails-5.0.5/app/assets", 
"/usr/local/Cellar/rbenv/1.0.0/versions/2.3.1/lib/ruby/gems/2.3.0/gems/font-awesome-rails-4.7.0.2/app/assets", 
"/usr/local/Cellar/rbenv/1.0.0/versions/2.3.1/lib/ruby/gems/2.3.0/gems/font-awesome-rails-4.7.0.2/app/helpers", 
"/usr/local/Cellar/rbenv/1.0.0/versions/2.3.1/lib/ruby/gems/2.3.0/gems/devise-4.3.0/app/controllers", 
"/usr/local/Cellar/rbenv/1.0.0/versions/2.3.1/lib/ruby/gems/2.3.0/gems/devise-4.3.0/app/helpers", 
"/usr/local/Cellar/rbenv/1.0.0/versions/2.3.1/lib/ruby/gems/2.3.0/gems/devise-4.3.0/app/mailers", 
"/Users/MaxBook/code/PackYourSkills/pyswebsitev1/test/mailers/previews" 

/응용 프로그램/서비스가 포함됩니다.

어떤 아이디어가 있다면 매우 유용 할 것입니다. 고맙습니다.

답변

0

질문에 넣으면 파일 이름 이벤트에 _service을 넣는 걸 잊었을 수도 있습니다. 추측하면 ...

0

파일명 끝에 _service이 표시되어 있습니다.