Modifier son pseudo en tant qu'utilisateur

Le problème exposé dans ce sujet a été résolu.

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
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte