Ruby on rails 如何为脚本或批处理文件设置rails_env
我将批处理文件放在lib文件夹中 并使用rails db配置,活动记录如下Ruby on rails 如何为脚本或批处理文件设置rails_env,ruby-on-rails,ruby,Ruby On Rails,Ruby,我将批处理文件放在lib文件夹中 并使用rails db配置,活动记录如下 require "#{File.dirname(__FILE__)}/../config/environment.rb" class Batch def hello Message.new do |t| t.title = "hello" t.save end end end batch = Batch.new batch.hello 当执行批处理时 ruby lib
require "#{File.dirname(__FILE__)}/../config/environment.rb"
class Batch
def hello
Message.new do |t|
t.title = "hello"
t.save
end
end
end
batch = Batch.new
batch.hello
当执行批处理时
ruby lib/batch.rb
在开发环境中是可以的
但生产环境仍然保存开发数据库
如何像这样设置rails_env batch.rb
ruby lib/batch.rb RAILS_ENV=production
初始化Rails环境,而不是将
require "#{File.dirname(__FILE__)}/../config/environment.rb"
使用script/runner
启动批处理文件,并使用-e
选项指定环境
e、 g
我认为以上是Rails编写和执行脚本的方式,需要初始化Rails框架才能工作。如前所述,另一种方法是在命令前面加上RAILS_ENV=value,例如
这是一个标准的shell功能,用于在执行命令之前设置环境变量。仅供参考,无需脚本/运行程序:
RAILS_ENV=production ruby lib/batch.rb
$ RAILS_ENV=production lib/batch.rb
RAILS_ENV=production ruby lib/batch.rb