Ruby on rails 未定义的方法“更新属性';

Ruby on rails 未定义的方法“更新属性';,ruby-on-rails,Ruby On Rails,我环顾四周,不知道如何解决这个问题。我有一个未定义的方法“update_attributes”。我想这是因为@user没有定义。因此,如果我能够定义@user,它应该能够修复它。问题是我不知道如何定义@user来修复它。如果有人能给我指出正确的方向那就太好了 Users.controller.rb: def edit @user = User.find(params[:id]) end def update @user.update_attributes(par

我环顾四周,不知道如何解决这个问题。我有一个未定义的方法“update_attributes”。我想这是因为@user没有定义。因此,如果我能够定义@user,它应该能够修复它。问题是我不知道如何定义@user来修复它。如果有人能给我指出正确的方向那就太好了

Users.controller.rb:

   def edit
      @user = User.find(params[:id])
end

  def update
     @user.update_attributes(params[:id])
      flash[:success] = "Account updated"
      sign_in @user
      redirect_to @user
    else
      render 'edit'
  end

如果您正在为资源使用restful路径,那么更新操作应该如下所示:

def update
    @user = User.find(params[:id])
    if @user.update_attributes(params[:user])
      flash[:success] = "Account updated"
      sign_in @user
      redirect_to @user
    else
      render 'edit'
    end
end

我们基本上首先通过params[:id]找到用户记录,然后更新用户字段。

谢谢。成功了。我最初犯的错误(我在堆栈上提交的代码之前的代码)是:id和:user在错误的位置切换。你为我把它们按正确的顺序排列。谢谢