【问题标题】:Delayed_job(2.1.4) + Rails(3.0.10) undefined method `delay'Delayed_job(2.1.4) + Rails(3.0.10) 未定义方法“延迟”
【发布时间】:2011-12-21 19:46:09
【问题描述】:

我将一个 rails 应用程序升级到 rails(3.0.10) 并更新 gem 延迟作业。我更新了表delayed_job 的迁移,但不幸的是方法“.delay”不起作用。

NoMethodError: undefined method `delay' for #<User:0x10394d140>

我没有找到解决方案。我做了:“捆绑安装”,我重新启动了服务器,尝试安装为插件......

你有什么想法吗?

谢谢。

更新:

我解决了这个问题,但是用

创建了一个文件 config/initializer/delayed_job.rb
require 'delayed_job'
Delayed::Worker.backend = :active_record

【问题讨论】:

  • 我修改了我的答案,以防你已经阅读过
  • 问一个显而易见的问题,您是否在 Gemfile 中添加了延迟作业?

标签: ruby-on-rails-3 delayed-job nomethoderror


【解决方案1】:

有时 gem 只是拒绝正确安装。我认为你应该做的是(假设你已经安装了 git,否则去这里https://github.com/tobi/delayed_job 并下载delayed_job 作为一个zip 文件)

git clone https://github.com/tobi/delayed_job.git

将他的 lib 文件夹中的内容放入您的文件夹中。无论你需要在哪里使用他的方法,然后做

require 'delayed_job'

在这些文件的顶部

我查看了本教程,它显示了一种在 rails 3 中设置的方法

http://www.dixis.com/?p=335

它建议在你的 gemfile 中使用它

gem "delayed_job",  :git => 'git://github.com/collectiveidea/delayed_job.git'

(如果它也不起作用,那么尝试与我相同的方法,但替换

git clone https://github.com/tobi/delayed_job.git 

git clone https://github.com/collectiveidea/delayed_job.git

告诉我有什么用

【讨论】:

  • 感谢您的帮助。我认为我的问题是因为我升级到 rails 3 并且我们使用了带有“send_later”的 gem 的先前版本。所以目前它不起作用,我不知道是什么问题。再次感谢
  • 我解决了这个问题,但创建了一个文件 config/initializer/delayed_job.rb 并使用 require 'delayed_job' Delayed::Worker.backend = :active_record
猜你喜欢
  • 2011-05-24
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
  • 1970-01-01
  • 2011-05-29
  • 1970-01-01
相关资源
最近更新 更多