ruby on rails - instalar - ¿Cómo ejecuto un archivo Ruby en un entorno de Rails?
instalar ruby on rails en windows 10 (4)
Quiero ejecutar un archivo Ruby en el contexto de un entorno de Rails. Rails Runner casi hace lo que quiero hacer, pero me gustaría simplemente darle el nombre y los argumentos del archivo. Estoy bastante seguro de que esto es posible ya que lo he hecho antes. ¿Alguien me puede recordar cómo hacer esto?
Esta es una vieja pregunta, pero en mi opinión a menudo me resulta útil crear una tarea de rake ... y en realidad es muy fácil.
En 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
Y luego en la carrera terminal:
rake example:create_user
Localmente, esto se ejecutará en el contexto de su base de datos de desarrollo, y si se ejecuta en Heroku, se ejecutará mientras esté conectado a su base de datos de producción. Encuentro esto especialmente útil para ayudar con migraciones o tablas modificadas.
Simplemente requiere environment.rb
en su script. Si su script está ubicado en el directorio de script
de su aplicación Rails, haga
require File.expand_path(''../../config/environment'', __FILE__)
Puede controlar el entorno utilizado (desarrollo / prueba / producción) configurando la variable de entorno RAILS_ENV
al ejecutar el script.
RAILS_ENV=production ruby script/test.rb
http://guides.rubyonrails.org/command_line.html#rails-runner ejecuta código de Ruby en el contexto de Rails de forma no interactiva.
Desde el comando 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.
También puedes usar runner como una línea shebang para tus scripts como este:
-------------------------------------------------------------
#!/usr/bin/env /Users/me/rails_project/script/rails runner
Product.all.each { |p| p.price *= 2 ; p.save! }
-------------------------------------------------------------
La manera más simple es con el rails runner
porque no necesita modificar su secuencia de comandos.
http://guides.rubyonrails.org/command_line.html#rails-runner
En Rails 2, es script / runner.
Solo di rails runner script.rb