Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何为脚本或批处理文件设置rails_env_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何为脚本或批处理文件设置rails_env

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

我将批处理文件放在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/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