Как установить rails_env для скрипта или командного файла - PullRequest
4 голосов
/ 08 февраля 2010

Я положил свой командный файл в папку lib и используйте конфигурацию rails db, active-record вот так.

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

Ответы [ 2 ]

5 голосов
/ 08 февраля 2010

Инициализировать среду Rails вместо того, чтобы ставить

require "#{File.dirname(__FILE__)}/../config/environment.rb"

запустите ваш командный файл с помощью script/runner и укажите среду с параметром -e

, например

script/runner -e production lib/batch.rb

Я думаю, что вышеизложенное - это Rails-способ написания и выполнения скрипта, для работы которого требуется инициализированная среда Rails. Альтернатива, как говорит нейтрино , состоит в том, чтобы префикс команды с RAILS_ENV = значение например,

$ RAILS_ENV=production lib/batch.rb

Это стандартная функция оболочки для установки переменной среды перед выполнением команды.

2 голосов
/ 08 февраля 2010

Только к вашему сведению без сценария / бегуна:

RAILS_ENV=production ruby lib/batch.rb
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...