2012-08-03 3 views

답변

20

defined? ModelName은 모델이 정의 된 경우 "상수"를 반환합니다.

+1

'defined? '는 일관된 결과를 반환하지 않는 것 같습니다. ' $가 레일 C 로드 개발 환경 (레일 4.2.0) 2.2.1 : 001> 정의 (사용자) => "상수" 2.2.1 : 002> 정의 아래의 코드를 확인하십시오? (인증 토큰) => nil을 2.2.1 : 003> 인증 토큰 => 인증 토큰 2.2.1 (연결을 설정하는 'AuthenticationToken.connection을'전화) : => "상수"004> 정의 (인증 토큰) 를? 2.2.1 : 005> ' –

+0

동의합니다. 일부 상수는 참조 된 후에 만로드되는 것 같습니다. – Pandem1c

1

defined?은 (@Jiggneshh Gohel의 @Jiggneshh Gohel의 설명을 참조하십시오.) models 디렉토리에서 파일 이름을 확인할 수 있습니다.

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

models.include? "User" => true