2016-02-09 7 views
5

Mam klasą Ruby, że będę używać tylko na konsoli, to łaty małpa ActiveRecord::Base z pewnymi skrótami jak ua dla update_attribute i nie chcę, aby go załadować podczas uruchamiania rails server ale tylko podczas uruchamiania polecenia rails console.Jak wymaga pliku tylko dla konsoli

Jak to osiągnąć?

+0

Proszę nie odpowiadać '.irbrc', ponieważ chcę, aby to działało tylko dla jednego projektu. –

Odpowiedz

5

rails console definiuje Rails::Console

Więc można zrobić

if defined?(Rails::Console) 
    # this runs only in rails console 
end 

Innym podejściem byłoby użyć config/application.rb:

module MyApplication 
    class Application < Rails::Application 
    console do 
     require 'my_console_file' 
    end 
    end 
end 
+1

plik inicjujący byłby dobrym miejscem na umieszczenie tego? pamiętajcie, że chcę ścieżki małpie Klasy ActiveRecord –

+0

To wydaje się działać tylko dla Rails 3+, jakikolwiek pomysł na szynę 2.3? –

+0

Inicjator brzmi jak dobry pomysł. Co do szyn 2.3, przepraszam, nie mam pojęcia. Czy 'Rails :: Console' nie jest zdefiniowany? –

1

Można założyć nowe środowisko, "Konsola", przez kopiowanie jednego z istniejących i wprowadzanie pożądanych zmian, a następnie zawsze uruchamiać konsolę w tym środowisku. Wygląda na to, że zmniejszy to przypadkowy syndrom efektów ubocznych.

Powiązane problemy