没有delayed_job,这段代码工作正常; 如果我包含delayed_job,我会uninitialized constant EmailNewsletter::Gibbon在工作人员的每次尝试中收到错误.
Rails 3.0.7,Gibbon 0.1.5(用于处理MailChimp的宝石),delayed_job 2.1.4.
调节器
def subscribe
email = params[:email]
EmailNewsletter.subscribe(email)
render(:update) do |page|
page << "...view update code..."
end
end
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,如果我向/ subscribe发布电子邮件地址,一切正常.我想合并delayed_job,以便我的应用程序不会感到慢,如果MailChimp花了太长时间来响应.
调节器
def subscribe
email = params[:email]
EmailNewsletter.delay.subscribe(email)
render(:update) do |page|
page << "...view update code..."
end
end
Run Code Online (Sandbox Code Playgroud)
看起来这个工作进入delayed_job表就好了.该handler数据是:
--- !ruby/struct:Delayed::PerformableMethod
object: !ruby/module EmailNewsletter
method_name: :subscribe
args:
- email@example.com
Run Code Online (Sandbox Code Playgroud)
一秒钟后,工人拿起并运行,我收到一个错误:uninitialized constant EmailNewsletter::Gibbon …
$('#foo').slider({
range: 'min',
min: 0,
max: 1000,
step: 100,
value: 500,
create: function( event, ui) {
var bar = ui.value;
},
//etc...
});
Run Code Online (Sandbox Code Playgroud)
为什么不bar定义而不是500?是否有可能一个变量分配到value的create事件?