要使用devise_token_auth gem更新用户,您可以按照以下步骤进行操作:
gem 'devise_token_auth'
运行bundle install
来安装gem。
在终端中运行以下命令来生成必要的配置文件和迁移文件:
rails generate devise_token_auth:install User auth
rails db:migrate
这将生成一个名为User
的模型,以及必要的控制器和路由。
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable
以启用devise的认证功能。class User < ApplicationRecord
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable
include DeviseTokenAuth::Concerns::User
# ...
end
class UsersController < ApplicationController
before_action :authenticate_user!
def update
@user = current_user
if @user.update(user_params)
render json: @user
else
render json: { errors: @user.errors.full_messages }, status: :unprocessable_entity
end
end
private
def user_params
params.require(:user).permit(:name, :email)
end
end
上述代码中,我们首先使用before_action :authenticate_user!
来确保用户已经登录。然后,我们通过current_user
方法获取当前登录的用户。接下来,我们使用update
方法来更新用户的信息。如果更新成功,我们将返回更新后的用户信息;否则,我们将返回错误信息。
请注意,上述代码中的user_params
方法是一个私有方法,它允许接受name
和email
参数。您可以根据您的需求添加或删除其他参数。
这样,您就可以使用devise_token_auth gem更新用户了。您可以根据自己的需求进行修改和扩展。