Ruby on rails Rails API不更新记录

Ruby on rails Rails API不更新记录,ruby-on-rails,ruby,api,Ruby On Rails,Ruby,Api,我正在使用rails构建一个API,我的更新方法表现得很奇怪 我使用curl来更新用户,当我在rails服务器终端中查看时,它似乎已经更新了用户,但当我在rails控制台中查找用户时,用户并没有改变 如果我尝试卷曲单个用户记录,也是一样的。它只会改变,如果我卷曲更新3次 以下是我的更新方法: def update respond_with User.find_by(params[:uid]).update(user_params) end private def user_params

我正在使用rails构建一个API,我的更新方法表现得很奇怪

我使用curl来更新用户,当我在rails服务器终端中查看时,它似乎已经更新了用户,但当我在rails控制台中查找用户时,用户并没有改变

如果我尝试卷曲单个用户记录,也是一样的。它只会改变,如果我卷曲更新3次

以下是我的更新方法:

def update
  respond_with User.find_by(params[:uid]).update(user_params)
end

private

def user_params
  params.require(:user).permit(:username, :uid, :provider, :image_url, :full_name, :colour)
end
我使用的curl命令如下

curl -v -H "Accept: application/json" -H "Content-type: application/json" -X PUT -d '{"username":"Bradley Jamil"}'  http://localhost:3000/api/v1/users/81888
这是终端的输出

在我再次运行同一个curl请求2次之前,所讨论的用户不会更改

这里还有我的用户模型

    # User Class
    class User < ActiveRecord::Base
      has_many :friendships
      has_many :friends, through: :friendships
      has_many :inverse_friendships, class_name: 'Friendship', foreign_key: 'friend_id'
      has_many :inverse_friends, through: :inverse_friendships, source: :user

      validates :provider, :uid, :username, :image_url, :full_name, :colour, presence: true
      validates :uid, uniqueness: true
      validates :provider, format: /\A(twitter)\Z/
    end
#用户类
类用户
如评论所示,我认为存在验证问题,我不完全确定您是否正在调用save

我会这样做,至少是为了调试

  def update
    respond_with User.find_by(params[:uid]).assign_attributes(user_params).save!
  end
在这里,我们正在进行批量属性更新(在内存中),然后使用
save将其刷新到数据库中
您可能知道,
保存将返回
true
或在失败时引发异常


日志将显示异常,curl将获得400或500级错误,这取决于rails在捕获验证错误和返回正确响应代码方面的魔力。

发布curl命令和rails日志。请注意语法和帖子的清晰性。你不想要
update\u attributes
而不是
update
?我也尝试过使用
update\u attributes
而不是
update
,结果是一样的。把问题分开一点。抓取用户,查看用户的当前状态
放置用户。检查
,执行更新,执行另一个
放置用户。检查
并查看属性是否更改。这将全部输出到终端。此日志与更新不一致。所有这些都是
SELECT
sql。对于更新,您应该看到
更新
或者
插入
。几乎可以肯定,验证失败了。我们必须查看您的
用户
模型才能了解发生了什么。