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?¿Cómo ejecuto un archivo Ruby en un entorno de Rails?
Respuesta
Simplemente requiera environment.rb
en su secuencia de comandos. Si el script se encuentra en el directorio script
de su aplicación Rails hacer
require File.expand_path('../../config/environment', __FILE__)
Se puede controlar el entorno utilizado (desarrollo/prueba/producción) estableciendo la variable de entorno RAILS_ENV
cuando se ejecuta la secuencia de comandos.
RAILS_ENV=production ruby script/test.rb
La forma más sencilla es con rails runner
debido a que no es necesario modificar la secuencia de comandos.
http://guides.rubyonrails.org/command_line.html#rails-runner
En Rails 2, es script/corredor.
Sólo decir rails runner script.rb
Runner ejecuta código Ruby en el contexto de los carriles no interactiva.
De 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.
También puede utilizar corredor como una línea tinglado para las secuencias de comandos de esta manera:
-------------------------------------------------------------
#!/usr/bin/env /Users/me/rails_project/script/rails runner
Product.all.each { |p| p.price *= 2 ; p.save! }
-------------------------------------------------------------
Ésta es una cuestión de edad, pero en mi opinión que a menudo se encuentran es ú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 el terminal ejecutar:
rake example:create_user
localmente este se ejecutará en el contexto de su base de datos de desarrollo, y si se ejecuta en Heroku que se ejecutará mientras está conectado a su base de datos de producción. Encuentro esto especialmente útil para ayudar con migraciones o tablas modificadas.
- 1. ¿Cómo crear un nuevo entorno en Ruby on Rails?
- 2. Cómo ejecuto varias líneas de Ruby en el archivo html.erb
- 3. Cómo ejecuto un archivo * .dll
- 4. ¿Cómo ejecuto un archivo XSLT?
- 5. Copie un archivo en Ruby on Rails
- 6. ¿Cómo ejecuto un archivo en localhost?
- 7. ¿Cómo descomprimir un archivo en Ruby on Rails?
- 8. ¿Cómo subir un archivo en ruby on rails?
- 9. Entorno portátil de Ruby on Rails
- 10. Crear un nuevo entorno en Rails
- 11. ¿Cómo se realizan búsquedas de comodines con Mongoid en un entorno de Ruby on Rails?
- 12. Consola Rails: ejecute un archivo Ruby varias veces
- 13. Ruby on Rails: ejecutando un archivo .rb desde IRB
- 14. ¿Cómo ejecuto un script usando un archivo BAT?
- 15. esperando tASSOC en un archivo de Rails
- 16. ¿Cómo cambio a versiones anteriores del entorno ruby / rails?
- 17. Ejecutar código de ruby en un entorno limitado
- 18. ¿Hay un archivo de Ruby on Rails layouts/css?
- 19. Ruby on Rails: Cómo ordenar un collection_select
- 20. ¿Cómo ejecuto una gema de Ruby?
- 21. ¿Cómo ejecuto un archivo bat en el fondo de otro archivo bat?
- 22. ¿Cómo puedo generar variables de entorno para un shell de comandos en un script de Ruby?
- 23. Crear archivo descargable en Ruby on Rails
- 24. ¿Cómo ejecuto consultas sobre la conexión de DB en Rails?
- 25. Cómo leer un archivo abierto en Ruby
- 26. Crea una miniatura de un dwg en un entorno Linux
- 27. ¿Cómo ejecuto un archivo por lotes desde mi aplicación Java?
- 28. ¿Cómo ejecuto un servidor Mercurial?
- 29. ¿Cuál es el mejor entorno de Ruby on Rails para un usuario de Visual Studio?
- 30. ¿Cómo leer un archivo de abajo hacia arriba en Ruby?
Si ejecuto el código anterior, se mostrará "home/apps/config/environment". ¿Qué ocurre si tengo una aplicación de 2 carriles ejecutándose en el mismo directorio? ¿Qué entorno tomará? Estoy enfrentando este problema en mi caja local. gentilmente sugiera –
@VijaySali Supongo que está ejecutando su script desde el directorio 'app/script'. El archivo de entorno se tomará de la aplicación individual. – iltempo
yup me funcionó, agregué ENV ['RAILS_ENV'] también –