2012-08-03 58 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