2013-12-20 3 views
0

Я бы хотел, чтобы на уровне контроллера, если роль, которую вы пытаетесь удалить == Administrator, не позволяет пользователю удалять эту роль.Нет, вы не можете удалить эту запись, rails 4.0.2

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

Что способ справиться с этим в Rails (4.0.x)

ответ

1

Вы можете сделать это с before_filter. A before_filter работает перед действием.

Таким образом, в вашем контроллере вы можете добавить:

before_filter :ensure_not_administrator, only: :destroy 

#your actions go here 

private 

def ensure_not_administator 
    @record = Model.find(params[:id]) 
    if @record.role == 'Administrator' 
    flash[:error] = "Cannot delete this record" 
    redirect_to where_you_want_to_go_path 
    return false 
    end 
end 
Смежные вопросы