2017-09-13 78 views
0

我卡住了,即使我发现有关此问题的某些主题,我也没有找到任何解决方案。Rails无法识别我的应用程序/服务(未初始化的常量)

如果我的“Packer”注册到我们的新闻邮件(一个“Packer”是一种“User” - “User”只有Devise参数,并且“Packer”具有其他功能,我想添加订阅到Mailchimp )

错误是未初始化的常量,它似乎是因为rails无法识别我的服务。

这里是我的#应用程序/模型/ 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 

展望不同的解决方案,我也补充说行在#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

相关问题