【问题标题】:Where do I put model so that whenever could access them?我在哪里放置模型以便随时可以访问它们?
【发布时间】:2015-05-30 17:34:17
【问题描述】:

简单而且可能很愚蠢的问题。只是在哪里? /models 中的简单生成模型不起作用,/lib 中的新类也不起作用......只是关于未定义方法等的错误。

schedule.rb

every '* * * * *' do
runner 'UpdateDaysAgo.test'
end

型号

class UpdateDaysAgo < ActiveRecord::Base
  def test
    UpdateDaysAgo.create(channel: "nil", title: "nil", game: "nil", avatar: "nil", created_at: Time.now, updated_at: Time.now)
  end
end

错误

/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/dynamic_matchers.rb:26:in `method_missing': private method `test' called for #<Class:0x00000004db7b40> (NoMethodError)

只要工作正常,command 上的一些 cron 作业都很好。但我不知道modelsrunner :/

【问题讨论】:

    标签: ruby-on-rails model whenever


    【解决方案1】:

    你应该创建class method:

    class UpdateDaysAgo < ActiveRecord::Base
      def self.test
        UpdateDaysAgo.create(channel: "nil", title: "nil", game: "nil", avatar: "nil", created_at: Time.now, updated_at: Time.now)
      end
    end
    

    【讨论】: