Ruby on rails RubyonRails如何在没有交互的情况下运行脚本文件?
我正在尝试运行脚本文件,这是应用程序的后院。服务器启动时,必须运行脚本;直到服务器停止。 我知道Ruby on rails RubyonRails如何在没有交互的情况下运行脚本文件?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在尝试运行脚本文件,这是应用程序的后院。服务器启动时,必须运行脚本;直到服务器停止。 我知道railsrunner命令;但我的脚本包含数据库进程(insert),返回的错误名为: : uninitialized constant DataRecord (NameError) script.rb: # # Some codes here # DataRecord.create(sensor_id: data[0].to_s, temperature: data[1].to_f, humu
railsrunner
命令;但我的脚本包含数据库进程(insert),返回的错误名为:
: uninitialized constant DataRecord (NameError)
script.rb:
#
# Some codes here
#
DataRecord.create(sensor_id: data[0].to_s, temperature: data[1].to_f, humudity: data[2].to_f)
#
# And some codes here..
#
-----------------------------------------------------------------
DataRecord是我的模型。当然,它可以在“应用程序\控制器”上运行,并进行交互。必须有人进入网站。我不想要它
data_record.rb:
class DataRecord < ApplicationRecord
end
在脚本开头添加
require./config/environment'
,以便在脚本中加载rails应用程序(以及所需的模型)
你可能想把它变成任务。你认为ActiveJobs怎么样?我不知道它是怎么用的。但根据,它可以运行后端进程;就像我想要的那样。然而,我不知道如何使用它,我也不清楚:/要使用activejob,你需要设置一个像sidekiq或resque这样的工作运行程序(如果你不知道,它只是在你的web应用程序进程中以线程的形式运行)好的,朋友。我将尝试您的建议和activejob,并返回结果。谢谢
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
end
~$ ruby -v
ruby 2.3.1p112
~$ rails -v
Rails 5.0.1