Risposte:
Il modo più semplice è con rails runner
perché non è necessario modificare lo script.
http://guides.rubyonrails.org/command_line.html#rails-runner
Dì solo rails runner script.rb
Richiedilo semplicemente environment.rb
nel tuo copione. Se il tuo script si trova nella script
directory della tua app Rails, fallo
require File.expand_path('../../config/environment', __FILE__)
È possibile controllare l'ambiente utilizzato (sviluppo / test / produzione) impostando la RAILS_ENV
variabile di ambiente durante l'esecuzione dello script.
RAILS_ENV=production ruby script/test.rb
app/script
directory. Il file dell'ambiente verrà preso dalla singola app.
Runner esegue il codice Ruby nel contesto di Rails in modo non interattivo.
Dal rails runner
comando:
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.
Puoi anche usare runner come una linea shebang per i tuoi script in questo modo:
-------------------------------------------------------------
#!/usr/bin/env /Users/me/rails_project/script/rails runner
Product.all.each { |p| p.price *= 2 ; p.save! }
-------------------------------------------------------------
Questa è una vecchia domanda, ma secondo me spesso trovo utile creare un'attività rake ... ed è in realtà molto semplice.
In 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
E poi nel terminale esegui:
rake example:create_user
Localmente verrà eseguito nel contesto del database di sviluppo e, se eseguito su Heroku, verrà eseguito mentre è connesso al database di produzione. Lo trovo particolarmente utile per assistere con le migrazioni o le tabelle modificate.