2012-08-03 19 views

Odpowiedz

20

defined? ModelName powróci "stały", jeśli zdefiniowano model.

+1

"zdefiniowany?" Nie wydaje się zwracać spójnych wyników. Proszę sprawdzić poniższy kod: ' $ ceowniki Loading środowisko programistyczne (Rails 4.2.0) 2.2.1: 001> zdefiniowane (User) => "stałą" 2.2.1: 002> zdefiniowane? (AuthenticationToken) => nil 2.2.1 003> AuthenticationToken => AuthenticationToken (połączenie 'AuthenticationToken.connection' ustanowienie połączenia) 2.2.1: 004> określone (AuthenticationToken) => "stałej" 2.2.1: 005> ' –

+0

Zgadzam się^wydaje się, że niektóre stałe są ładowane tylko po odwołaniu? – Pandem1c

1

Ponieważ defined? jest problematyczny (patrz komentarz @Jiggneshha Gohela), być może można sprawdzić nazwy plików w katalogu models.

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

models.include? "User" => true