2013-02-25 5 views
0

J'ai regardé autour et je ne sais pas comment résoudre ce problème. J'ai une méthode non définie `update_attributes '. Je pense que c'est parce que @user n'est pas défini. Donc, si je suis capable de définir @user, il devrait être capable de le réparer. Le truc, c'est que je ne sais pas comment définir @user pour le réparer. Si quelqu'un pouvait me diriger dans la bonne direction, ce serait formidable.la méthode undefined `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 

Répondre

1

Si vous utilisez des chemins reposant pour vos ressources puis mettre à jour l'action devrait être quelque chose comme ceci:

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 

Nous trouvons essentiellement d'abord l'enregistrement de l'utilisateur par le biais les paramètres [: id] et ensuite mettre à jour les champs de l'utilisateur.

+0

Merci. Ça a marché. Ce que j'ai initialement mal fait (le code précédent à celui que j'ai soumis ici sur Stack) était: id et: l'utilisateur change de place au mauvais endroit. Vous les avez placés dans le bon ordre pour moi. Merci –

Questions connexes