2017-10-16 2 views
1

Comment faire pour exécuter le code spécifiquement après une console a chargé dans Rails? Toutes les autres réponses et les questions semblent tourner autour de courir un crochet à un certain point, mais pas nécessairement après comme je cherche.Comment exécuter du code après le chargement de la console Rails?

Résultat souhaité:

> rails console 
Loading development environment (Rails 5.1.1) 
pry(main)> 
Welcome 

J'ai tenté d'utiliser à la fois le crochet console et crochet initializer sans succès. par exemple.

Essai 1:

# config/application.rb 

console do 
    puts "Welcome" 
end 

Résultat:

> rails console 
Welcome # Too early                
Loading development environment (Rails 5.1.1) 
pry(main)> 

Essai 2:

# config/application.rb 

initializer "welcome", after: :disable_dependency_loading do |app| 
    puts "Welcome" 
end 

Résultat:

> rails console 
Welcome # Too early                
Loading development environment (Rails 5.1.1) 
pry(main)> 
+0

Je ne suis pas certain de votre résultat souhaité, mais vous avez envisagé rails coureur, à savoir "rails runner 'p Rails.env'"? –

Répondre

0

lors de l'utilisation de la CISR

Créer un. irbrc fichier (il devrait être la racine de votre projet), vous devez définir conf pour IRB_RC. Ci-dessous le fichier

#.irbrc 
IRB.conf[:IRB_RC] = Proc.new do 
    puts "Welcome" 
end 

Sortie

~/D/p/p/s/console_test> rc 
Running via Spring preloader in process 60648 
Loading development environment (Rails 5.1.4) 
Welcome #<======= Desired Result 
irb(main):001:0> 

Lorsque vous utilisez avec LEVIER

Créer un fichier .pryrc (il devrait être racine de votre projet) vous devez définir conf pour exec_stringCi-dessous le fichier

#.pryrc 
class WelcomeClass 

    def self.greet 
    puts "Welcome" 
    end 
end 

Pry.config.exec_string = WelcomeClass.greet 

Sortie

~/D/p/p/s/console_test> rails console 
Running via Spring preloader in process 61794 
Loading development environment (Rails 5.1.4) 
Welcome #<======= Desired Result 
[1] pry(main)> 
1

Créer un ".irbrc" dans votre racine. Ceci est simplement un fichier de script Ruby régulier où vous pouvez exécuter du code sur le démarrage IRB. Pour des exemples, voir Tweaking IRB.

0

Vous pouvez créer une config/initializers comme celui-ci:

# config/initializers/001_test_console.rb 
module Rails::ConsoleMethods 
    def self.included(base) 
    puts "Welcome!" 
    end 
end 

Note: Je ne l'ai pas essayé avec levier, juste irb standard.