2012-02-21 53 views
3

所以思想是定義哪裏定義方法可訪問直接從鐵軌控制檯

def foo 
    puts "Works!" 
end 
從控制檯

和直接,而無需裝載任何我寫

irb(main):001:0>foo() 
=> "Works!" 
irb(main):002:0> 

我使用1.9.3上視窗。我想要使​​用這個爲了有一個方法將重新加載lib/*,以便我不需要重新啓動控制檯。謝謝。

回答

9

我覺得這是你在問什麼......我已在在初始化下面的代碼:

if defined?(Rails::Console) 
    require "util/console_extensions" 
    include ConsoleExtensions 
end 

任何額外的方法,我想在控制檯lib/util/console_extensions.rb

module ConsoleExtensions 
    def foo 
    puts "Works!" 
    end 
end 

定義這個自動要求,幷包括ConsoleExtension模塊加載軌道控制檯時,並使其中定義的方法可用,無需手動加載任何東西。

+0

純真迷人!謝謝你,非常聰明的解決方案。 – 2012-02-21 10:13:30

+1

沒問題!樂意效勞。 – Russell 2012-02-21 10:14:39

+0

這不適用於我 - 「Rails :: Console」未定義。這裏的第一條評論(http://stackoverflow.com/a/4604079/2339708)認爲這是因爲Spring。 – 2016-12-08 16:31:29

0

如果這是僅用於測試目的,然後定義這些文件內部模型:)和後記將其移動到lib目錄

+4

似乎我們現在都學會了更好的方法。 – 2012-02-21 10:14:17