PATCH请求返回true而非更新用户数据问题求助
问题原因
- Rails 的
update!方法返回的是布尔值(更新成功返回true,失败则抛出异常),你将这个返回值赋值给了updated_user,所以后端最终返回给前端的 JSON 数据就是true,而非更新后的用户对象。
修复方案
修改后端的 update 方法,直接返回已修改的 @user 对象即可——因为 update! 已经完成了对 @user 属性的修改和数据库保存:
def update @user.update!(user_params) render json: @user, status: :accepted end
补充说明
update!执行成功时会直接修改@user实例的属性并同步到数据库,返回值仅用于标识操作结果,并非更新后的对象。- 若更新失败,
update!会主动抛出ActiveRecord::RecordInvalid异常,你可以根据需求添加异常捕获逻辑。
内容的提问来源于stack exchange,提问作者oogy
相关产品推荐
相关产品推荐

