2016-08-16 3 views
-1

Currently I'm using devise and rails_admin on Rails 5.0.0.1, when I open admin panel this error is showing up.NoMethodError в RailsAdmin :: MainController # dashboard undefined method `is_admin? ' for # <User: 0x007fc87c140c48> Вы имели в виду? is_haml?

После того, как я добавил ниже строк в файле rails_admin.rb для авторизации, возникает ошибка выше

config.authorize_with do 
redirect_to main_app.root_path unless current_user.is_admin? 

конец

+0

Дайте более подробную информацию: 1) что вы хотели 2) что вы пробовали 3) что произошло. – peterh

+0

@Bikal, как вы можете отличить стандартного пользователя от администратора? У вас есть поле 'admin' или' role' в таблице 'users'? –

+0

@peterh, в настоящее время у меня есть два пользователя, которые могут отправлять сообщения, которые оба выполняют операции CRUD, теперь я хочу назначить любого пользователя в качестве администратора. Я попробовал назначить через консоль rails, но это порождает ошибки. – Bikal

ответ

0

Ошибка заявляет, что is_admin? метод не определен для user экземпляр. Я предполагаю, что у вас есть атрибут admin в вашей модели. Вы можете определить метод в модели как

class User < ActiveRecord::Base 
def is_admin? 
    self.admin #returns a boolean 
end 
... 
end 

Или замените блок с

config.authorize_with do 
    redirect_to main_app.root_path unless current_user.admin 
end 

current_user.admin возвращает логическое значение, основанное на поле admin в users таблице.

Надеюсь, это поможет!

Смежные вопросы