Rails, Active Addmin ve cancancan ile çalışıyorum. Her şey bir şey dışında iyi çalışıyor. Son zamanlarda benim admin tür kullanıcılar ve istemcileri için ayrı ad alanları ekledim.Raylar, Aktif Yönetici, Devise, rotalar
devise_scope :user do
authenticated :user do
root :to => 'admin/dashboard#index', as: :authenticated_root
end
unauthenticated :user do
root :to => 'pages#index', as: :unauthenticated_root
end
end
Şu anda nasılsa ek koşul eklemem gerekiyor doğrulanmış kullanıcı olmadığını kontrol edilecektir:
o değişiklikten önce, böyle bir şekilde aynı aktif yönetici paneline (routes.rb) için yetkilendirilmiş tüm kullanıcılara yönlendirildi admin veya istemci numaralı bir istemciye sahiptir.
Benim fikrim böyle fiil yapmaktı:
devise_scope :user do
authenticated :user do
if current_user.role?(:Architect) || current_user.role?(:Admin)
root :to => 'admin/dashboard#index', as: :authenticated_root
else
root :to => 'clients/dashboard#index', as: :authenticated_client
end
end
unauthenticated :user do
root :to => 'pages#index', as: :unauthenticated_root
end
end
Ama hata alıyorum: tanımsız yerel değişken veya yöntem `örnein' anybody rotalara kullanıcının rolünü kontrol edebilirsiniz biliyor mu? Bunu yapmanın daha iyi bir yolu var mı?
sessions_controller özel belirtmek gerekir eylem filtresinden önce applicationcontroller. Daha önce route.rb adresinde current_user erişemedim. –
Bu yaklaşımdan ne haber? http://stackoverflow.com/questions/31681957/rails-routes-based-on-current-user – exmaxx