Allow devise_for to be scoped with the scope method. This commit requires latest commits in Rails master.

This commit is contained in:
José Valim
2010-06-30 12:41:44 +02:00
parent 78e7642bd2
commit 2103a673f0
5 changed files with 96 additions and 62 deletions

View File

@@ -97,11 +97,6 @@ class MappingTest < ActiveSupport::TestCase
assert_equal 2, Devise.mappings[:manager].segment_position
end
test 'path is returned with path prefix and as' do
assert_equal '/users', Devise.mappings[:user].full_path
assert_equal '/:locale/accounts', Devise.mappings[:manager].full_path
end
test 'magic predicates' do
mapping = Devise.mappings[:user]
assert mapping.authenticatable?

View File

@@ -8,13 +8,16 @@ 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 => {
:sign_in => "login", :sign_out => "logout",
:password => "secret", :confirmation => "verification",
:unlock => "unblock", :sign_up => "register",
:registration => "management"
}
scope ":locale" do
devise_for :accounts, :singular => "manager", :class_name => "User",
:path_names => {
:sign_in => "login", :sign_out => "logout",
:password => "secret", :confirmation => "verification",
:unlock => "unblock", :sign_up => "register",
:registration => "management"
}
end
match "/admin_area/home", :to => "admins#index", :as => :admin_root
match "/sign_in", :to => "devise/sessions#new"