2009-02-23 8 views
68

Me sale un error cada vez que trato de usar la función entra dentro de una tarea de rake. ¿Hay alguna manera de hacerlo funcionar?¿Cómo uso "obtiene" en una tarea de rake?

dice que el error "No existe el fichero o directorio - (nombre de la tarea rake)"

+0

El mensaje de error parece bastante autoexplicativo ... –

+5

Parece que sí, pero no lo es. Ver mi respuesta a continuación. Existe una gran confusión sobre la diferencia entre Kernel # gets y STDIN.gets. –

Respuesta

138

El problema es que Kernel#gets (que es lo que está llamando si solo usa gets por sí mismo) supone que está sacando de un archivo nombrado por los argumentos pasados ​​a Rake. Eso significa que gets intenta devolver el contenido de un archivo llamado [rake-task-here], que casi con seguridad no existe.

Probar STDIN.gets.

+1

¡Eso es todo! Perfectamente – debbie

-4

no creo que usted debe estar usando mete en una tarea rastrillo, si tiene que tomar la entrada de la orden línea probablemente deba pasarlo como un parámetro, pero si publica un código que no está funcionando, entonces estoy seguro de que obtendrá una mejor respuesta.

+19

En general, los argumentos de la línea de comandos _son_ una mejor opción, pero existen muchos buenos motivos para usarlos dentro de una tarea de rake. La mayoría de ellos tiene que ver con la autenticación o verificación de que realmente quieres hacer lo que le pidas a rake que haga. ("implementar código de producción") –

Cuestiones relacionadas