После подтверждения работы в локальной среде я развернул ее в производственной среде.В первый раз я допустил ошибку в коде и получил ошибку undefined method
.После исправления кода и его повторного развертывания появилась следующая ошибка:
Когда я искал, были такие статьи, как то, что он не читался, если он был под lib, но я подумал, что он не применим, потому что он был подмоделей.Было бы полезно, если бы вы могли позаимствовать чью-то мудрость.
# log/cron.log
Running via Spring preloader in process 7298
Please specify a valid ruby command or the path of a script to run.
Run 'bin/rails runner -h' for help.
uninitialized constant Item
# crontab -l
# Begin Whenever generated tasks for: /var/www/rails/myapp/config/schedule.rb at: 2019-06-10 16:14:42 +0000
0 2 * * * /bin/bash -l -c 'cd /var/www/rails/myapp && bundle exec bin/rails runner -e production '\''Item.reload'\'' >> /var/www/rails/myapp/log/cron.log 2>&1'
# End Whenever generated tasks for: /var/www/rails/myapp/config/schedule.rb at: 2019-06-10 16:14:42 +0000
environment
ruby: 2.5.0 rails: 5.2.3 ー ー バ ー: Amazon Linux 2 AMI
код
config/schedule.rb
require File.expand_path(File.dirname(__FILE__) + "/environment")
set :output, "#{Rails.root}/log/cron.log"
set :environment, :production
every 1.day, at: '02:00' do
runner 'Item.reload'
end
# models/item.rb
class Item < ApplicationRecord
...
def self.reload
...
end
end