【问题标题】:Set ruby path for run model function using whenever gem in rails使用rails中的任何时候gem为运行模型函数设置ruby路径
【发布时间】:2016-04-16 03:50:25
【问题描述】:

在我的 rails 应用程序中,我想使用无论何时 gem 运行模型函数。 我的 schedule.rb 文件就像,

set :environment, 'development'
set :output, "#{path}/log/cron.log"
set :job_template, "bash -l -c ':job'"
job_type :runner,  "cd :path && bin/rails runner -e :environment ':task' :output"

every 2.minutes do
  runner "Book.jobrun"
end

every 2.minutes do
    command "echo 'rink4'"
end

和 book.rb 模型一样,

self.jobrun
  Rails.logger.info "cronjob is running"
end

但是当我运行 cronjob 时,在 cron.log 文件中显示,

bin/rails:3: undefined method `require_relative' for main:Object (NoMethodError)

我需要如何设置 ruby​​ 路径或 rails 路径?

【问题讨论】:

    标签: ruby-on-rails ruby cron whenever


    【解决方案1】:

    尝试从 cron 运行 which ruby。是否如您所愿?如果没有,cron 很可能默认为系统 Ruby,在您的情况下可能是 1.8.7 版并且没有 require_relative 函数。

    通过which ruby 检查您正在使用的 ruby​​ 可执行文件。并在您的垃圾箱/栏杆顶部的shebang中使用它。比如

    bin/rails

    #!/Users/<username>/.rvm/rubies/ruby-2.2.4/bin/ruby.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-15
      • 2010-09-22
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      相关资源
      最近更新 更多