Rails API не может уничтожить сеанс

#ruby-on-rails #ruby-on-rails-4 #devise #ruby-on-rails-5

Вопрос:

Я использую API Rails и разрабатываю для аутентификации, но при отправке запроса на уничтожение сеанса он не возвращает никакого ответа, кроме статуса 200.Он возвращает один и тот же ответ независимо от того, существует ли пользователь, вошел в систему или неверный пароль.

URL-адрес http://localhost:3000/users/sign_in

Я отправляю запрос на удаление через Почтальона, и он просто возвращает 200 ответов. Он должен возвращать данные, которые хранятся в @message

 {
    "user":{
        "email":"abc@abc.com",
        "password":"abc@abc.com"
    }
}
 

Я даже пытался отменить сеанс, используя идентификатор сеанса:

curl -X DELETE -d "3" http://localhost:3000/users/sign_out

sessions_controller.rb

 class API::V1::SessionsController < Devise::SessionsController
  def create
    @user = User.find_by_email(user_params[:email])
    if @user amp;amp; @user.valid_password?(user_params[:password])
      session[:user_id]=@user.id
      sign_in :user, @user
      render json: @user
    elsif @user amp;amp; not(@user.valid_password?(user_params[:password]))
      invalid_attempt
    else
      no_user
    end
  end

  def destroy
    @message = "signed out"
    session.delete(:user_id)
    sign_out(@user)
    render json: @message
  end

  private

  def no_user
    render json: {error: "An account with this email doesn't exist. Please create a new one"}, status: :unprocessable_entity
  end

  def invalid_attempt
    render json: { error: "Your password isn't correct" }, status: :unprocessable_entity
  end

  def user_params
    params.require(:user).permit(:email, :password)
  end
end
 

маршруты.rb

  devise_for :users, controllers: { registrations: 'api/v1/registrations', sessions:'api/v1/sessions'}