2017-10-16 70 views
1

一個人如何專門運行代碼一個控制檯已加載到Rails中?所有其他答案和問題似乎圍繞在某個點運行鉤子,但不一定之後,因爲我正在尋找。如何在Rails控制檯加載後執行代碼?

所需的結果:

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

我試圖同時使用consoleinitializer鉤沒有成功。例如

嘗試1:

# config/application.rb 

console do 
    puts "Welcome" 
end 

結果:

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

嘗試2:

# config/application.rb 

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

結果:

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

我不能肯定你想要的結果,但你有沒有考慮軌道亞軍,即「軌道亞軍‘P Rails.env’」? –

回答

0

當IRB使用

創建。 irbrc文件(它應該是你的項目的根目錄)你應該爲IRB_RC設置conf。下面是該文件

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

輸出

~/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> 

當PRY

使用創建.pryrc文件(它應該是你的項目的根)你應該爲設置conf 0。下面是該文件

#.pryrc 
class WelcomeClass 

    def self.greet 
    puts "Welcome" 
    end 
end 

Pry.config.exec_string = WelcomeClass.greet 

輸出

~/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

在您的根目錄中創建一個「.irbrc」。這只是一個普通的Ruby腳本文件,您可以在IRB啓動時運行代碼。有關示例,請參閱Tweaking IRB

0

您可以創建一個配置/初始化這樣的:

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

注:我不撬,只是標準的IRB嘗試這樣做。

相關問題