From 7a45043bc8c192fdbd5097b331672fe0cd76fece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 24 Jun 2010 16:51:30 +0200 Subject: [PATCH] Be more friendly if the user goes ahead and adds devise_for :users before defining the model. --- lib/devise/rails/routes.rb | 5 +++++ test/rails_app/config/routes.rb | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/devise/rails/routes.rb b/lib/devise/rails/routes.rb index f1611979..f93854d2 100644 --- a/lib/devise/rails/routes.rb +++ b/lib/devise/rails/routes.rb @@ -93,6 +93,11 @@ module ActionDispatch::Routing begin raise_no_devise_method_error!(mapping.class_name) unless mapping.to.respond_to?(:devise) + rescue NameError => e + raise unless mapping.class_name == resource.to_s.classify + warn "[WARNING] You provided devise_for #{resource.inspect} but there is " << + "no model #{mapping.class_name} defined in your application" + next rescue NoMethodError => e raise unless e.message.include?("undefined method `devise'") raise_no_devise_method_error!(mapping.class_name) diff --git a/test/rails_app/config/routes.rb b/test/rails_app/config/routes.rb index efe064ae..74f6d832 100644 --- a/test/rails_app/config/routes.rb +++ b/test/rails_app/config/routes.rb @@ -7,8 +7,8 @@ Rails::Application.routes.draw do devise_for :users devise_for :admin, :path => "admin_area", :controllers => { :sessions => "sessions" }, :skip => :passwords - devise_for :accounts, :singular => "manager", :path_prefix => ":locale", - :class_name => "User", :path_names => { + devise_for :accounts, :singular => "manager", :path_prefix => ":locale", :class_name => "User", + :path_names => { :sign_in => "login", :sign_out => "logout", :password => "secret", :confirmation => "verification", :unlock => "unblock", :sign_up => "register",