2012-05-01 4 views
7

Czy istnieje sposób wykonania kodu, który jest uruchamiany tylko po uruchomieniu konsoli? Trochę jak plik rc (.bashrc, .zshrc, itp.)? Zawsze robię wiele rzeczy.Jak uruchomić kod tylko po uruchomieniu konsoli railsowej, przypominającej plik rc?

Na przykład, gdzie chciałbym umieścić to

u = User.find_by_username('my_console_user') 

u tak, że jest dostępny w rails console?

Użądałem tego, użycia $ jako deklaracji zmiennej globalnej, oraz użycia niejasnego console do. Zakładam, że jest coś bardziej eleganckie jakoś ...

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

Dołącz to w inicjalizatorze – apneadiving

+1

W konsoli wpisz: 'load 'foo.rb'' i zawartość' foo.rb' zostanie wykonana. Umieść tam swój potrzebny kod. – jdoe

+0

@apneadiving: który bit? Cała rzecz? – pixelearth

Odpowiedz

3

Jeśli używasz irb, po prostu dodaj metodę w ~/.irbrc (utworzyć jeśli nie istnieje):

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

lub dodać do ~/.pryrc jeżeli używasz pry-rails.

Mam nadzieję, że to pomoże!

+1

Co to ma być częścią samego projektu? aby inni programiści mogli czerpać z tego korzyści? –

+0

Zatwierdź irbrc/pryrc do kontroli wersji. – juanitofatas

+0

A następnie pozostawić instrukcje dla użytkownika, aby skopiować go do swojego katalogu domowego? –