Відповіді:
Найпростіший спосіб - це rails runner
тому, що вам не потрібно змінювати сценарій.
http://guides.rubyonrails.org/command_line.html#rails-runner
Просто сказати rails runner script.rb
Просто вимагайте environment.rb
у своєму сценарії. Якщо ваш скрипт знаходиться в script
каталозі програми Rails
require File.expand_path('../../config/environment', __FILE__)
Ви можете контролювати використовуване середовище (розробку / тест / виробництво), встановлюючи RAILS_ENV
змінну оточення під час запуску сценарію.
RAILS_ENV=production ruby script/test.rb
app/script
каталогу. Файл середовища буде взято з окремого додатка.
Runner запускає Ruby-код у контексті Rails неінтерактивно.
З 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.
Ви також можете використовувати runner в якості рядка shebang для своїх сценаріїв, таких як:
-------------------------------------------------------------
#!/usr/bin/env /Users/me/rails_project/script/rails runner
Product.all.each { |p| p.price *= 2 ; p.save! }
-------------------------------------------------------------
Це старе питання, але, на мою думку, мені часто здається корисним створити завдання граблі ... і насправді це дуже просто.
В lib/tasks/example.rake
:
namespace :example do
desc "Sample description you'd see if you ran: 'rake --tasks' in the terminal"
task create_user: :environment do
User.create! first_name: "Foo", last_name: "Bar"
end
А потім у терміналі запустіть:
rake example:create_user
Локально це буде виконуватися в контексті вашої бази даних розробок, і якщо запустити на Heroku, він буде запускатися під час підключення до вашої виробничої бази даних. Я вважаю це особливо корисним для надання допомоги з міграціями чи модифікованими таблицями.