2013-02-25 74 views
0

我看了一下,我不知道如何解决这个问题。我有一个未定义的方法`update_attributes'。我在想这是因为@user没有定义。所以如果我能够定义@user它应该能够修复它。问题是我不知道如何定义@user来修复它。如果有人能指出我会朝着正确的方向发展,那将是很棒的。未定义的方法`update_attributes'

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

如果您使用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]然后更新用户字段。

+0

谢谢。这工作。我最初做错了(我在Stack上提交的代码之前的代码)有:id和:用户在错误的地方切换。你把它们放在适合我的顺序中。谢谢 – 2013-02-25 17:18:26

相关问题