2012-05-01 8 views
7

¿Hay alguna manera de ejecutar algún código que se ejecuta solo cuando se inicia la consola? Algo así como un archivo rc (.bashrc, .zshrc, etc.)? Siempre me encuentro haciendo ciertas cosas.¿Cómo ejecutar código solo cuando se inicia la consola de rieles, algo así como un archivo rc?

Por ejemplo, ¿dónde pongo esto

u = User.find_by_username('my_console_user') 

modo que u está disponible en rails console?

He recurrido a esto, el uso de $ como declaración de variable global, y el uso del console do oscuro. Asumo que es algo más elegante de alguna manera ...

class Application < Rails::Application 
    #this is only executed in the console, also doens't seem to be documented anywhere but here: https://github.com/rails/rails/pull/3139 
    console do 
     $u1 = User.find_by_username('user1') 
     $u2 = User.find_by_username('user2') 
    end 

    end 
+0

Incluir esto en un inicializador – apneadiving

+1

En la consola simplemente escriba: 'load 'foo.rb'' y se ejecutará el contenido de' foo.rb'. Pon allí todo tu código necesario. – jdoe

+0

@apneadiving: ¿qué bit? ¿Toda la cosa? – pixelearth

Respuesta

3

Si utiliza irb, sólo tiene que añadir un método en el ~/.irbrc (crear uno si no existe):

def find_by_username(username) 
    User.find_by_username('my_console_user') 
end 

o añadir a ~/.pryrc si usted usa pry-rails.

Espero que esto ayude!

+1

¿Qué queremos que sea parte del proyecto en sí? para que otros desarrolladores puedan tener el beneficio? –

+0

Confirme el irbrc/pryrc con el control de versión. – juanitofatas

+0

¿Y luego deja instrucciones para que el usuario lo copie en su carpeta de inicio? –

Cuestiones relacionadas