2012-08-03 53 views

回答

20

defined? ModelName如果定義了模型,將返回「常量」。

+1

'defined?'似乎沒有返回一致的結果。請檢查下面的代碼: ' $軌道ç 加載開發環境(滑軌4.2.0) 2.2.1:001>定義(用戶) => 「常量」 2.2.1:002>定義? (AuthenticationToken) =>無 2.2.1:003> AuthenticationToken => AuthenticationToken(稱之爲 'AuthenticationToken.connection' 建立連接) 2.2.1:004>定義(AuthenticationToken) => 「恆定」 2.2.1:005> ' – 2015-12-08 11:06:30

+0

同意^似乎有些常量只在引用後加載? – Pandem1c 2015-12-21 20:27:18

1

由於defined?有問題(請參閱@Jiggneshh Gohel的評論),也許您可​​以檢查models目錄中的文件名。

files = Dir[Rails.root + 'app/models/*.rb'] 
models = files.map{ |m| File.basename(m, '.rb').camelize } 

models.include? "User" => true