2010-11-25 7 views
0

Ceci est mon users_controller.rb code:Impossible de trouver le modèle Afficher dans Rails?

... 
    def edit 
    @user = @current_user 
    end 

    def update 
    @user = @current_user # makes our views "cleaner" and more consistent 
    if @user.update_attributes(params[:user]) 
     flash[:notice] = "Account settings updated." 
     redirect_back_or_default account_url 
    else 
     render :action => 'edit' 
    end 
    end 
    ... 

je les vues/utilisateurs suivants:

  1. new.html.erb
  2. password.html.erb
  3. profile.html.erb
  4. show.html.erb

Chaque fois que j'essaie de mettre à jour mes paramètres de compte utilisateur, les pops suivants jusqu'à:

ActionView::MissingTemplate (Missing template users/edit.erb in view path app/views:vendor/plugins/admin_data/app/views): 
    app/controllers/users_controller.rb:46:in `update' 

Ce n'est pas la faute de admin_data est vous êtes curieux. C'est le contrôleur. Qu'est ce que j'ai mal fait? Merci.

Répondre

2

D'abord, si vous voulez que l'action de mise à jour retour à: spectacle, vous devez changer

render :action => 'edit' 

à

render :action => 'show' 

autrement, il sera bien sûr chercher edit.html.erb ou edit.erbDeuxièmement, si vous utilisez 'show' pour laisser l'utilisateur éditer ses informations, pourquoi avez-vous réellement l'action: edit dans votre contrôleur? Si vous ne l'utilisez pas, vous devriez probablement supprimer ce qui suit:

def edit 
    @user = @current_user 
end 
2

à moins que vous dire la méthode edit pour rendre quelque chose d'autre ou rediriger vers d'autres où, la valeur par défaut est qu'il recherchera un modèle de edit.erb ...

+0

Mon utilisateur met à jour ses informations dans "show.html.erb". Comment puis-je obtenir le contrôleur pour enregistrer et rediriger vers là? Merci. – Victor

Questions connexes