【问题标题】:Whenever Plugin Help每当插件帮助
【发布时间】:2010-02-01 19:25:39
【问题描述】:

我正在尝试使用 Rails 的 When 插件在特定时间执行模型过程。我的 schedule.rb 如下:

 every 1.day, :at => '5:30 am' do
    runner "User.mail_out"
  end

我的模型如下:

class User < ActiveRecord::Base

  acts_as_authentic

  def mail_out

    weekday = Date.today.strftime('%A').downcase

    @users = find(:conditions => "#{weekday}sub = t")

    @users.each { |u| UserMailer.deliver_mail_out(u)}   


  end

end

当我尝试运行 script/runner -e development "User.mail_out" 命令时,我收到以下错误:

/var/lib/gems/1.8/gems/rails-2.3.5/lib/commands/runner.rb:48: undefined method `mail_out' for #<Class:0xb708bd50> (NoMethodError)
    from (eval):1
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `eval'
    from /var/lib/gems/1.8/gems/rails-2.3.5/lib/commands/runner.rb:48
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from script/runner:3

谁能指出出了什么问题?另外,如何手动调用 mail_out 进程(从命令行)来测试我的邮件系统的功能。

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-plugins whenever


    【解决方案1】:

    您收到该错误是因为您将 mail_out 方法定义为 instance 方法而不是 class 方法。要修复它,请将方法定义行更改为(添加self.):

    def self.mail_out
    

    要从命令行对其进行测试,请执行以下操作:

    script/runner "User.mail_out"
    

    你可能想putsprint 一些东西,以便你得到一些关于发生的事情的反馈。

    【讨论】:

    • 感谢您的帮助。现在我收到一个新错误,我更新了上面的帖子。我还包括了我的邮件脚本。关于什么不起作用的任何想法?
    • 好问题,但请尽量避免在发布答案后大幅更改您的问题。该站点的目标是构建一个网页集合,其中包含对特定问题的有用回答,不仅适用于提问者,而且适用于整个开发社区,包括将来阅读此页面的任何人。您的新问题与原始问题无关(不完全是您的错 - 它可能看起来相关),因此将其作为新问题发布会更清楚。 (另外,这是我给你的第二个有用的答案——看看你以前的问题——投票怎么样?)
    • 对不起,我仍然掌握这个网站的窍门。我将发布一个新问题。我标记了你的答案:) 谢谢你的帮助。
    • Trevor,别担心——感谢您的投票!我会回答你的新问题,但我出去了几个小时。现场见,祝您项目顺利。
    【解决方案2】:

    我遇到了与 OP 相同的错误,但我确实正确定义了 Class 方法(或者我认为是这样)。

    事实证明,我将方法放在了 Controller(看起来是正确的位置)而不是 Model(看起来像错误的位置)。无论如何,将方法放入模型中为我解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2010-12-22
      • 1970-01-01
      • 2010-12-07
      • 2021-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多