Ошибка разрешения Angular и Devise

0

Я использую Angular и Devise для своего webapp, и у меня небольшая проблема. Я не хочу, чтобы пользователь посещал определенные части приложения, если они не before_action :authenticate_user! в систему, поэтому я использую before_action :authenticate_user! в моем приложении application_controller.rb.

Я использовал router-ui для маршрутизации пользователей на #home, когда они посещают страницу, http://localhost: 3000/users/sign_in #/home

$stateProvider
  .state('home', {
    url: '/home',
    templateUrl: '../assets/angular-app/templates/_home.html.haml',
    controller: 'mainCtrl',
    resolve: {
      postPromise: ['posts', function(posts){
        return posts.getAll();
      }]
    }
  })

решение получает все сообщения из моей базы данных и выводит их на главную страницу. Но когда пользователь не зарегистрирован в файле JSON, выдается ошибка авторизации 401, так как он не вошел в систему.

Какой был бы лучший способ исправить эту проблему?

Теги:
devise

1 ответ

1
Лучший ответ

В контроллере, когда вы извлекаете сообщения, вы должны пропустить authenticate_user! фильтр для действия, которое отвечает на запрос.

class YourController < ApplicationController

  skip_before_action :authenticate_user!, only: :your_action

  def your_action
    # the action which retrieves posts
  end
  ...
end

Ещё вопросы

Сообщество Overcoder
Наверх
Меню