Я отправляю запрос 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:````