Voici le code généré par des rails:RoR: Comment modifier le contrôleur pour accepter la mise à jour de plusieurs paramètres seulement?
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
flash[:notice] = 'User was successfully updated.'
format.html { redirect_to(@user) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
Mais je ne veux pas l'utilisateur de mettre à jour l'utilisateur tout, supposons que mon utilisateur a fname, lname et le sexe, au lieu de supprimer le sexe de la vue, Je veux limiter que la méthode de mise à jour accepte UNIQUEMENT fname et lname seulement, si il/elle veut mettre à jour le genre, je ne lui permettrai pas de le faire. Comment puis-je empêcher l'utilisateur de le faire? Je vous remercie.
Etes-vous sûr de vouloir cela au niveau du contrôleur/modèle? De ma propre expérience, j'essaierais d'éviter cela en utilisant JavaScript ou en utilisant plusieurs formulaires (un formulaire pour la mise à jour par genre, un pour la mise à jour du nom, tous les deux utilisent la même mise à jour), surtout si vous voulez bien. "Vous ne pouvez pas changer votre nom et votre sexe en même temps" est vraiment étrange à lire dans une documentation API. –