未定义的方法`update_attributes'

时间:2013-02-25 17:06:40

标签: ruby-on-rails

我环顾四周,我不知道如何解决这个问题。我有一个未定义的方法`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

1 个答案:

答案 0 :(得分:1)

如果您使用资源的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]找到用户记录,然后更新用户字段。