2012-02-28 58 views
1

在Ruby中很容易看出,如果一個模塊定義:如何知道模塊是否在Rails中定義?

defined? MyModule 

但在Rails中,當你這樣做的Rails會嘗試加載模塊(從自動加載路徑等)。所以如果它不存在,它會拋出一個錯誤,而不是返回false

我能做

do 
    defined? MyModule 
rescue 
    # false 
end 

但它有一個更好的辦法?

回答

0

您使用的是什麼版本的Ruby和Rails?當我嘗試這個,沒有錯誤拋出:

ruby-1.9.3-p0 :1 > defined? Rails 
=> "constant" 
ruby-1.9.3-p0 :2 > defined? NotAConstant 
=> nil 
+0

你在做這是一個Rails控制檯? – Blacksad 2012-02-28 17:53:56

+0

是的,否則Rails不會被定義。 ;) – Veraticus 2012-02-28 17:54:18

相關問題