2016-05-24 2 views
2

Я пытаюсь использовать rails_admin_pundit для добавления доступа на основе ролей к rails_admin.ArgumentError at/user. - Rails 4 Rails_admin Pundit

Я получаю эту ошибку, когда я нажимаю на таблицу users в rails_admin.

ArgumentError at /user. User(id: integer, email: string, ... 'shortened' ...role: integer) is not an ActiveRecord::Relation

Я создал приложение с помощью:
https://github.com/RailsApps/rails-devise-pundit

и следовали инструкции по использованию на:
https://github.com/sudosu/rails_admin_pundit

Это в моем user_policy.rb только, чтобы получить все началось ...

def rails_admin?(action) 
    case action 
    when :destroy, :new 
     false 
    else 
     @current_user.admin! 
    end 
end 

Прилагается пара приложений с ошибкой и снимок экрана, который я вижу перед тем, как нажать кнопку имени модели пользователя.

app with the error..

error file and screenshot

another app with the same error

Не требуется: раздаточная ссылка ... link to screenshot, error page, and two apps that I have this problem in...

  • я могу получить пандита работать вне rails_admin
  • Я войтиin as admin
  • У меня есть google для этой ошибки или аналогичных проблем.

Может кто-нибудь мне помочь?

ответ

1

Когда мы генерируем код, который мы имеем:

class Scope < Scope 
    def resolve 
     scope 
    end 
    end 

Таким образом, вместо того, что нам нужно определить область

class Scope < Scope 
    def resolve  
    if @user.role.description == 'admin' 
     User.all 
    else 
     User.where(id: @user.id) 
    end 
    end 
end 
Смежные вопросы