Ruby on rails 使用rails中的gem为运行模型函数设置ruby路径

Ruby on rails 使用rails中的gem为运行模型函数设置ruby路径,ruby-on-rails,ruby,cron,whenever,Ruby On Rails,Ruby,Cron,Whenever,在我的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" eve

在我的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路径?

试着从cron运行
哪个ruby
。这和你期望的一样吗?如果不是,cron很可能默认为systemruby,在您的例子中,它可能是1.8.7版,没有
require\u relative
功能

检查您正在与哪个ruby一起使用的ruby可执行文件
哪个ruby
。在垃圾箱/栏杆顶部的垃圾桶中使用。比如说

bin/rails

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