2016-04-13 19 views
0

Pundit ile Rails uygulamasında Active Admin gem'i yüklemek için bazı sıkıntılarım var.Active admin ve Pundit

Pundit::PolicyScopingNotPerformedError at /admin 

Ben tanımlamak zorunda düşünüyorum: I/admin gittiğimde bu hata var

def authenticate_admin! 
    redirect_to new_user_session_path unless current_user && current_user.admin 
end 
ActiveAdmin.setup do |config| 
    # [...] 
    config.authentication_method = :authenticate_admin! 
    # [...] 
    config.current_user_method = :current_user 
    # [...] 
    config.logout_link_path = :destroy_user_session_path 
    # [...] 
    config.logout_link_method = :delete 
end 

benim active_admin.rb olarak benim Gemfile

gem 'activeadmin', github: 'activeadmin' 

yılında

bir politika ama nerede olduğunu bilmiyorum. Bunun için iyi bir öğreticiniz var mı?

cevap

1

Politika kullanımını doğrulamak için böyle bir şey kullandığınızı düşünüyorum.

ActiveAdmin bu denetimleri desteklemiyor. Sen ApplicationController yapılandırabilecekleri edemez ya da benim ApplicationController içinde bu var tüm ActiveAdmin Kontrolörleri

+0

için onlara atlamak gerekir: 'dahil bilgini after_action: verify_authorized hariç: endeksi, sürece: devise_controller? after_action: yalnızca_policy_scoped,:: index, aşağıdaki durumlarda:: devise_controller? Yani "active_admin_controller?" Dışında bir şey eklemek zorundayım? –

+0

Aşağıdaki gibi bir şeye ihtiyacınız var:: devise_or_active_admin_controller? ' –

+0

Teşekkürler! Bu yüzden ApplicationController: 'Pundit ' da dahil olmak üzere bir şey yaptım.İşlem dışı:: index, aşağıdaki durumlarda:: devise_or_admin_controller? after_action: yalnızca_policy_scoped,:: index, aşağıdaki durumlarda:: devise_or_admin_controller? ve 'def devise_or_admin_controller? devise_controller? || params [: denetleyici] = ~ /admin\/.*/ sonu –