1
在Ruby中很容易看出,如果一個模塊定義:如何知道模塊是否在Rails中定義?
defined? MyModule
但在Rails中,當你這樣做的Rails會嘗試加載模塊(從自動加載路徑等)。所以如果它不存在,它會拋出一個錯誤,而不是返回false
。
我能做
do
defined? MyModule
rescue
# false
end
但它有一個更好的辦法?
在Ruby中很容易看出,如果一個模塊定義:如何知道模塊是否在Rails中定義?
defined? MyModule
但在Rails中,當你這樣做的Rails會嘗試加載模塊(從自動加載路徑等)。所以如果它不存在,它會拋出一個錯誤,而不是返回false
。
我能做
do
defined? MyModule
rescue
# false
end
但它有一個更好的辦法?
您使用的是什麼版本的Ruby和Rails?當我嘗試這個,沒有錯誤拋出:
ruby-1.9.3-p0 :1 > defined? Rails
=> "constant"
ruby-1.9.3-p0 :2 > defined? NotAConstant
=> nil
你在做這是一個Rails控制檯? – Blacksad 2012-02-28 17:53:56
是的,否則Rails不會被定義。 ;) – Veraticus 2012-02-28 17:54:18