通过API调用更新devise用户,可以通过以下步骤实现:
rails generate controller
命令来生成一个控制器。update
方法来更新用户的属性。例如:def update
@user = User.find(params[:id])
if @user.update(user_params)
render json: { message: 'User updated successfully' }
else
render json: { error: 'Failed to update user' }, status: :unprocessable_entity
end
end
private
def user_params
params.require(:user).permit(:name, :email, :password)
end
在上述代码中,我们首先通过find
方法找到要更新的用户对象。然后,我们使用update
方法将传入的参数(通过user_params
方法过滤)更新到用户对象中。如果更新成功,我们返回一个成功的JSON响应,否则返回一个错误的JSON响应。
namespace :api do
namespace :v1 do
resources :users, only: [:update]
end
end
上述代码将update
动作映射到/api/v1/users/:id
路由。
/api/v1/users/:id
,其中:id
是要更新的用户的ID。请求的方法应该是PUT
或PATCH
,并且请求的主体(body)应该包含要更新的用户属性。例如,使用cURL发送更新用户信息的请求可以如下所示:curl -X PUT -H "Content-Type: application/json" -d '{"user": {"name": "John Doe", "email": "john@example.com"}}' http://localhost:3000/api/v1/users/1
上述命令将更新ID为1的用户的名称和电子邮件。
这是一个基本的通过API调用更新Devise用户的步骤。根据你的具体需求,你可能需要进一步定制和扩展这个过程。
领取专属 10元无门槛券
手把手带您无忧上云