104 votos

Pasar ruby archivo de secuencia de comandos a la consola de rails

Es allí una manera de pasar el rubí archivo foo.rb a la consola de rails. Resultados esperados sería después de que la consola se inicia el entorno de rails para ejecutar el archivo.

O de cualquier otra forma que me permita ejecutar el archivo en el entorno de rails, activa desde el símbolo del sistema.

155voto

Adrian Puntos 466

En realidad, la forma más sencilla es ejecutar con load dentro de la rails console

 load './path/to/foo.rb'

84voto

moritz Puntos 9491

Puede utilizar

bundle exec rails runner "eval(File.read 'your_script.rb')"

4voto

hari seldon Puntos 21
script/console --irb=pry < test.rb > test.log

simple, sucio, y bloquear el proceso en la final, pero se hace el trabajo exactamente como yo quería.

1voto

Marcos Puntos 942

De estos enfoques se mencionó anteriormente, ninguno parecía limpio e ideal como es de esperar de una secuencia de comandos independiente a ejecutar (no obtener eval-ed o canaliza a través de < redirección), pero finalmente esto funciona perfecto para mí:

(para Rieles de 3)

Insertar en la parte superior de la secuencia de comandos:

#!/usr/bin/env ruby

APP_PATH = File.expand_path(appdir = '/srv/staging/strat/fundmgr/config/application',  __FILE__)
require File.expand_path(appdir + '/../boot',  __FILE__)
require APP_PATH
# set Rails.env here if desired
Rails.application.require_environment!

# your code here...

Por supuesto, establezca su propia aplicación Rails ruta de acceso en el APP_PATH línea.

De esa manera, puede evitar tener que introducir interactivo irb o rails c y puede poner a prueba mi script.rb desde el prompt del shell, antes por ejemplo. la programación de la misma en el crontab.

Sin problemas apoya la línea de comando, demasiado, y minimiza los niveles de contenedores antes de llegar a su código.

De CRÉDITO (también se muestra una Rails 2 ejemplo)

http://zerowidth.com/2011/03/18/standalone-script-runner-bin-scripts-in-rails.html

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X