2017-08-14 2 views
0

Je suis un peu nouveau sur les rails et je veux demander à un utilisateur d'entrer son mot de passe actuel avant de mettre à jour ses informations. Je sais que cela peut être réalisé grâce à un plan, mais je veux le faire sans concevoir parce que j'ai vraiment du mal à modifier le plan.rails comment rejeter la mise à jour quand un paramètre est absent

ce que j'ai à l'esprit est quelque chose comme ceci:

def update 

     @edi_user = EdiUser.find(@trader_edi_user.edi_user_id) 
     @edi_user.update_attributes(edi_user_params.reject_if{ |attr| params['current_password'].blank? }) 

     redirect_to :back 
    end 

Je sais que ce code est erroné, mais est ce genre de logique possible dans des rails?

Ou quelqu'un peut-il m'aider à coder la bonne syntaxe?

vous remercie à l'avance

+0

Pourquoi ne pouvez-vous faire juste une validation côté client à la place? – Pavan

+0

Je l'ai fait mais je pense que c'est faux car le système sera très vulnérable de cette façon –

Répondre

0

Skipping mise à jour sur l'attribut manquant,

@edi_user.update_attributes(edi_user_params) if params['current_password'].present? 
+0

oui! Merci beaucoup! vous êtes un épargnant de vie –

+1

N'oubliez pas de vérifier si le mot de passe est réellement correct ... – DanneManne

+0

oui, merci :) –