Ruby on rails 使用rails中的gem为运行模型函数设置ruby路径
在我的rails应用程序中,我希望使用gem运行模型函数。 我的schedule.rb文件如下: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
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。