加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 通过delayed_job使用Gibbon gem时出错?

发布时间:2020-12-17 04:36:48 所属栏目:百科 来源:网络整理
导读:没有delayed_job,这段代码工作正常;如果我包含delayed_job,我会得到一个未初始化的常量EmailNewsletter :: Gibbon的错误,并且会对工作人员进行每次尝试. Rails 3.0.7,Gibbon 0.1.5(用于处理MailChimp的gem),delayed_job 2.1.4. 调节器 def subscribe email =
没有delayed_job,这段代码工作正常;如果我包含delayed_job,我会得到一个未初始化的常量EmailNewsletter :: Gibbon的错误,并且会对工作人员进行每次尝试.

Rails 3.0.7,Gibbon 0.1.5(用于处理MailChimp的gem),delayed_job 2.1.4.

调节器

def subscribe
  email = params[:email]
  EmailNewsletter.subscribe(email)
  render(:update) do |page|
    page << "...view update code..."
  end
end

LIB / email_newsletter.rb

module EmailNewsletter
  def self.subscribe(email)
    g = Gibbon::API.new('api_key_here',:id => 'list_id_here')
    g.listSubscribe(:email_address => email)
  end
end

使用上面的代码,如果我向/ subscribe发布电子邮件地址,一切正常.我想合并delayed_job,以便我的应用程序不会感到缓慢,如果MailChimp花了太长时间来响应.

调节器

def subscribe
  email = params[:email]
  EmailNewsletter.delay.subscribe(email)
  render(:update) do |page|
    page << "...view update code..."
  end
end

看起来这个工作进入delayed_job表就好了.处理程序数据是:

--- !ruby/struct:Delayed::PerformableMethod 
object: !ruby/module EmailNewsletter
method_name: :subscribe
args: 
- email@example.com

一秒钟后,工人拿起并运行,我收到一个错误:未初始化的常量EmailNewsletter :: Gibbon.

application.rb包括config.autoload_paths =%W(#{Rails.root} / lib).

我究竟做错了什么?

编辑

为了澄清,错误被抛出的那一行是

g = Gibbon :: API.new(‘api_key_here’,:id =>’list_id_here’)

我也试过了

g = :: Gibbon :: API.new(‘api_key_here’,:id =>’list_id_here’)

解决方法

它只是找不到Gibbon libs
require 'gibbon' #in the module to help it find it

-7个月后,但是嘿

或者更好的是,没有Gibbon :: API类,Gibbon本身就是类,而不是模块.

api = Gibbon.new("abc123-us2")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读