Bonjour à tous et à toutes,
je m’entraîne à utiliser rails. J'ai créé un système authentification pour l'utilisateur, évidemment il peut accéder à ces informations. Mais s'il est connecté, il peut aussi les modifier. Et c'est à partir de ce moment que je connais un problème, la redirection avec le patch fonctionne bien mais il n' y a aucune modification de son pseudo. L'utilisateur a beau rentrer son nouveau pseudo, il ne se modifie pas.
Voici mon code dans le controller sessions :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | class SessionsController < ApplicationController def new end def show @page = User.find(params[:id]) end def update User.find(params[:id]).update name: params[:name] redirect_to "/profil/#{current_user.id}" end def create user = User.find_by_email(params[:email]) # If the user exists AND the password entered is correct. if user && user.authenticate(params[:password]) # Save the user id inside the browser cookie. This is how we keep the user # logged in when they navigate around our website. session[:user_id] = user.id redirect_to '/' else # If user's login doesn't work, send them back to the login form. redirect_to '/login' end end def destroy session[:user_id] = nil redirect_to '/login' end end |
Voici mon code dans le show:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <h1>Profil</h1> <% if current_user && @page.id == current_user.id %> <%= form_tag "/profil/#{@page.id}", method: "patch" do %> <ul> <li><input type="text" name="name" value="<%= current_user.name %>" /></li> <li><%= image_tag current_user.avatar.url(:thumb) %></li> <input type="submit" value="Enregistrer mon profil" /> </ul> <% end else %> <%= @page.name %> <br> <%= image_tag @page.avatar.url(:thumb) %> <% end %> |
Voici ma routes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Rails.application.routes.draw do get 'sessions/new' get 'users/new' # For details on the DSL available within this file, see <a href="http://guides.rubyonrails.org/routing.html" rel="nofollow">http://guides.rubyonrails.org/routing.html</a> get '/signup' => 'users#new' post '/users' => 'users#create' get '/login' => 'sessions#new' post '/login' => 'sessions#create' get '/logout' => 'sessions#destroy' get '/profil/:id' => 'sessions#show' patch '/profil/:id' => 'sessions#update' end |
Après plein d'essais, je n'arrive toujours pas à trouver mon erreur.
Merci de m'éclairer
+0
-0