2010-10-14 3 views
0

est Voici mon contrôleur d'autorisations pour DEF MISE À JOUR:Rails 3 - Contrôleur Def Mise à jour, ne met pas à jour le dossier et ne pas d'erreur?

def update 

    @permission = Permission.where(:user_id=> params[:permission][:user_id]).where(:project_id=> params[:permission][:project_id]).first 

    respond_to do |format| 
    if @permission.update_attributes(params[:role_id]) 
     format.js { render :layout => false } 
    else 
     format.js { render :layout => false } 
    end 
    end 

Form post-tête UTF8: ✓ _method: mettre authenticity_token: 17rvYJmq7167 ktDBXZgDnopH3QY/Tb5a3K0jtcTjrU = autorisation% 5Brole_id% 5D: 3 autorisation% 5Buser_id% 5D: 11 permission% 5Bproject_id% 5D: 3

Aucune erreur ici, mais le rôle id n'est pas mis à jour? Des idées? Merci

Répondre

2

Vous transmettez params[:role_id] comme paramètre à update_attributes, mais cela n'est pas défini en fonction des données de publication que vous avez incluses.

Je pense que ce que vous entendez sans doute est la suivante:

if @permission.update_attribute(:role_id, params[:permission][:role_id]) 
    ... 
end 
+0

étrange. que les erreurs: "NoMethodError (méthode non définie' eq 'pour Nil: NilClass): app/controllers/permissions_controller.rb: 46: dans 'mise à jour' app/controllers/permissions_controller.rb: 45: dans' mise à jour ' " – AnApprentice

+0

Journal complet du débogueur: "(rdb: 31) @permission # (rdb: 31) params [: permission] [: id_rôle] " 1 " (rdb : 31) @ permission.update_attribute (: id rôle, params [: permission] [: id rôle]) NoMethodError Exception: méthode non définie 'eq 'pour nil: NilClass (rdb: 31) " – AnApprentice

+1

Quelle ligne est 46? Notez que j'ai changé update_attributes en update_attribute dans mon exemple de code. –

Questions connexes