Не удалось найти действие «обновление» для Api :: UsersController: - PullRequest
0 голосов
/ 06 октября 2019

Я отправляю запрос AJAX с моего внешнего интерфейса в rails для запроса исправления, но ошибка при получении действия не может быть найдена.

До сих пор я дважды проверил свои маршруты и контроллер, чтобы убедиться, что их не было. ошибки. Моя операция создания работает нормально, которая находится в контроллере пользователей. Я также дважды проверил мой AJAX-запрос, чтобы убедиться, что он соответствует правильному URL. Мой запрос AJAX также для загрузки AWS, если это помогает.

Вот мои маршруты

namespace :api, defaults: {format: :json} do
 resources :users, only: [:create, :update, :show]
    resource :session, only: [:create, :destroy, :show]

  end 
  root "static_pages#root"
end

Вот мой контроллер с действием обновления

class Api::UsersController < ApplicationController
    def create
    @user = User.new(user_params)
    if @user.save
      login(@user)
      render "api/users/show"
    else
      render json: @user.errors.full_messages, status: 422
    end

    def show 
      @user = User.find(params[:id])
      render "api/users/show"
    end

    def update 
        @user = User.find(params[:id])
        if @user.update_attributes(user_params)
          render "api/users/show"
        else 
          render json: @user.errors.full_messages
        end 
    end 

  end

  def user_params
    params.require(:user).permit(:email, :password, :first_name, :last_name, :DOB, :gender, :prof_photo, :cover_photo)
  end
end

Обновление: ajax-запрос для загрузки фотографий пользователя AWS.

export const updateUser = (userId, formData) => {
    return $.ajax({
        method: "PATCH",
        url: `api/users/${userId}`,
        data: formData,
        contentType: false,
        processData: false
    })
}

Наконец, вот журналы сервера


AbstractController::ActionNotFound - The action 'update' could not be found for Api::UsersController:

Started GET "/" for ::1 at 2019-10-06 07:49:03 -0400
Processing by StaticPagesController#root as HTML
  Rendering static_pages/root.html.erb within layouts/application
  User Load (0.8ms)  SELECT  "users".* FROM "users" WHERE "users"."session_token" = $1 LIMIT $2  [["session_token", "mRbshUiTIXjVd3LpZSiWvA"], ["LIMIT", 1]]
  ↳ app/controllers/application_controller.rb:10
  ActiveStorage::Attachment Load (0.7ms)  SELECT  "active_storage_attachments".* FROM "active_storage_attachments" WHERE "active_storage_attachments"."record_id" = $1 AND "active_storage_attachments"."record_type" = $2 AND "active_storage_attachments"."name" = $3 LIMIT $4  [["record_id", 2], ["record_type", "User"], ["name", "prof_photo"], ["LIMIT", 1]]
  ↳ app/views/api/users/_user.json.jbuilder:3
  ActiveStorage::Blob Load (1.1ms)  SELECT  "active_storage_blobs".* FROM "active_storage_blobs" WHERE "active_storage_blobs"."id" = $1 LIMIT $2  [["id", 2], ["LIMIT", 1]]
  ↳ app/views/api/users/_user.json.jbuilder:3
  Rendered api/users/_user.json.jbuilder (7.2ms)
  Rendered static_pages/root.html.erb within layouts/application (13.8ms)
Completed 200 OK in 93ms (Views: 86.5ms | ActiveRecord: 2.8ms)


Started PATCH "/api/users/2" for ::1 at 2019-10-06 07:55:37 -0400

AbstractController::ActionNotFound - The action 'update' could not be found for Api::UsersController:````

1 Ответ

0 голосов
/ 08 октября 2019

Нашли ошибку новичка! Конечный оператор для действия создания был полностью внизу (следовательно, работало только мое действие создания) Убедитесь, что проверили свои операторы конца!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...