Я бы рекомендовал использовать rails runner
.
Скрипты Runner имеют доступ ко всему, в том числе к базе данных, но без всех представлений из модели MVC. Они отлично подходят для внутренних задач или заданий, которые работают с базой данных, но не имеют никакого интерфейса.
Вы также можете использовать rails rake
вместо этого, но я чувствую, что грабли предназначены для обслуживания файлов и каталогов, а также для построения структуры, и сценарии запуска лучше для обычных задач, таких как то, что вы периодически запускаете из cron.
У меня есть один, который я использую для получения журналов с сайта, их анализа, а затем вставки в одну из моих баз данных. Нет причин запускать работу как часть приложения Rails, потому что не было необходимости в интерфейсе. Выполнение в виде runner
скрипта отлично подходит.
Встроенная справка гласит:
Usage: runner [options] ('Some.ruby(code)' or a filename)
-e, --environment=name Specifies the environment for the runner to operate under (test/development/production).
Default: development
-h, --help Show this help message.
You can also use runner as a shebang line for your scripts like this:
-------------------------------------------------------------
#!/path/to/your/rails/app/script/rails runner
Product.find(:all).each { |p| p.price *= 2 ; p.save! }
-------------------------------------------------------------
Последняя строка:
Product.find(:all).each { |p| p.price *= 2 ; p.save! }
показывает, насколько это просто.