Вам необходим before_filter, чтобы сделать что-то, чтобы прервать действие, если текущий пользователь не является администратором.
def user_is_admin
if current_user.admin != true
redirect_to <some_other_action>
return false
end
end
Обратите внимание, что это проверка того, что current_user НЕ является администратором.Кроме того, вы можете вызвать исключение или отобразить шаблон ошибки без перенаправления:
def user_is_admin
if current_user.admin != true
raise "Admin required"
end
end
или
def user_is_admin
if current_user.admin != true
render :template => 'shared/admin_required'
return false
end
end